关于Java HttpServlet请求和Principal对象的一些信息



在这段时间里,我正在研究从STS仪表板下载的Spring MVC展示示例

在我的home.jsp视图中,我有以下链接:

<a id="request" class="textLink" href="<c:url value="/data/standard/request" />">Request arguments</a>

此链接生成指向URL的HTTP请求:"/data/standard/Request">

这是我的控制器类处理这个HTTP请求的方法:

@RequestMapping(value="/data/standard/request", method=RequestMethod.GET)
public @ResponseBody String standardRequestArgs(HttpServletRequest request, Principal user, Locale locale) {
StringBuilder buffer = new StringBuilder();     // Rappresenta un buffer (sequenza mutabile di caratteri) API compatibile con StreamBuffer
buffer.append("request = ").append(request).append(", ");
buffer.append("userPrincipal = ").append(user).append(", ");
buffer.append("requestLocale = ").append(locale);
return buffer.toString();
}

这种方法需要3个参数,我还没有清除其中的一些:

  • HttpServlet请求:读取javadoc我可以读取到这个对象:扩展Servlet请求接口为HTTP servlet提供请求信息但是:什么样的信息

与此对象相关的缓冲区内容为:request=org.apache.catalina.connector.RequestFacade@62c77dc3到底是什么意思?

  • 主体用户:阅读javadoc我可以读到这个对象:*这个接口表示主体的抽象概念,它可以用来表示任何实体,例如个人、公司和登录id*

我不清楚我到底可以在这个对象中放什么,以及为什么缓冲区中的相关内容为空

有人能帮我吗?

感谢

Andrea

HttpServlet请求:由Container填充的对象。该对象由servlet容器填充,即您的服务器,它可能是tomcat、weblogic。该对象包含请求参数、会话信息等信息。你几乎无法控制这个物体。

主要用户:已登录到您的容器以访问应用程序的用户。如果你在容器中添加了安全性,那么该对象将为你提供登录用户的详细信息:用户名、角色(真实信息)

区域设置:访问web应用程序的用户的区域设置。

就StringBuffer的响应而言,打印对HttpServlet请求对象的引用。该对象由servlet容器填充。

与此对象相关的缓冲区内容为:request=org.apache.catalina.connector.RequestFacade@62c77dc3究竟是什么意思?

请求容器的对象实现,在本例中为tomcat。HttpServlet请求对象中封装了许多数据(关于http请求),如参数/header/method/url等。您需要阅读javaservlet规范。http://download.oracle.com/otndocs/jcp/servlet-2.4-fr-spec-oth-JSpec/

Tomcat就是这个规范的一个实现。

您是否将Principal和Locale设置为null?根据http://static.springsource.org/spring/docs/3.0.x/reference/mvc.html它们是有效的控制器方法参数。

最新更新