毕业设计网
开发环境 |

JavaServlets的其他属性

由于JAVA是面向对象的语言,因此JAVA平台已经将HTTP转换成对象的形式.这将会使JAVA程序员关注于应用本身而不是HTTP。  

  HTTP提供了一个标准的机制来扩展服务器的功能,我们称之为CGI. 服务器将请求发送到CGI程序,CGI程序则返回一个响应.同样的任何JAVA服务器则会接收请求,然后转发到Servlet。 

  Serveltjavax.servlet.http.HttpServlet的子类,每个Servlet必须完成四个方法:

  * public void init(ServletConfig config)

  * public void doGet(HttpServletRequest request, HttpServletResponse response)

  * public void doPost(HttpServletRequest request, HttpServletResponse response)

  * public void destroy()

  (一)、Servlets 和多线程  

  为了提高性能,Servlet设计程多线程.每个Servlet仅创建一个实例,每一个请求都传递到同一个对象.这将有利于Servlet容器充分的利用资源.因此doGet,doPos在编程时必须保证他是线程安全的。

  (二)、ServletContext

  ServletContext(javax.servlet.servletContext)定义了Web应用中Servlet的视图.在Servlet中通过getServletConfig()可以访问得到,在JSP中则通过隐式对象application得到.servletContext提供了几个对于创建Struts应用来说非常有用的几个方法:

  1、访问WEB应用资源:Servlet通过getResource(),getResourceAsStream()可以访问WEB应用中的静态资源文件。

  2、ServletContext属性 :Servlet上下文可以存储JAVA对象到属性中.这些属性对整个WEB应用都可见。

  (三)、Servlet请求  

  Servlet请求就是javax.servlet.http.HttpServletRequest,通过它可以访问HTTP请求的所有信息:  

  1、Cookies通过getCookies()可以得到当前请求的所有cookie

  2、HTTP头:HTTP请求的头可以通过对应的名字来访问.你当然可以通过枚举来列出所有的头。

  3、参数:你可以通过参数来访问HTTP请求的URL的参数或表单中的内容.

     4、请求特性:HTTP请求表单的提交方式(GET/POST),用的是什么协议(HTTP/HTTPS)

  5、请求URI信息:通过getRequestURI()可以得到最初的请求URI,除此之外,我们还可以得到contextPath,ServletPath,pathInfo

  6、用户信息:如果你正使用容器来进行安全管理,你可以得到一个Principal对象来代表当前用户,并确认该用户是否拥有某叫角色的权限.

  Servlet请求拥有请求级别的属性,与前面提到的应用级别属性类似.请求级别的属性经常用来传递状态信息到可视化组件(如JSP)。

  Servlet容器保证被Servlet处理的请求处于单线程内.因此你不必担心在访问request对象的属性时会有多线程的问题。  

  (四)、Servlet响应

  Servlet的功能就是接收请求,然后生成相应的响应. 这是通过调用javax.servlet.http.HttpServletResponse的方法实现的.

   1、设置头:你可以设置包含在响应中的头.最重要的头就是Content-Type,它用来告诉客户端内容的格式,比如:text/html代表html,text/xml代表XML

   2、设置Cookies 你可以加入cookie到当前的响应中。

   3、发送错误响应  你可以使用sendError()发送一个HTTP错误编号。

   4、重定向到其他资源 你可以使用sendRedirect()定向到另外一个URL。

   使用Response API 的一个最重要的原则就是:操作HEADer,Cookie的任何方法必须在第一次输出缓冲区满且发送到客户端前调用。

(五)、过滤

如果你的Servlet容器是基于Servlet规范2.3或更高,那么你就可以使用javax.servlet.Filter来对请求和响应作些处理.许多filter聚合在一起,每一个filter都有机会来对请求和响应做处理。

  (六)、Servlet中的Session

  HTTP的一个关键特性就是无状态,因此我们不知道某个请求是否是来自同一用户的请求,这将会使跨请求的会话变得很艰难。

  为了解决这个问题,Servelet实现了一个javax.servlet.http.HttpSession.servlet容器将采用CookieURL Rewriting来保证接邻近的请求包含session id来标识该请求是同一个session。因此保存在session中的属性可以被多个请求共享。

  为了不浪费资源,Session有一个可配置的超时时间设置.如果两个请求间的时间差超过了超时时间间隔,那么session中的数据会失效.你可以定义一个默认的超时时。

以上是一部分介绍,如需要完整的资料或者如不符合您的要求,请联系技术人员qq:242219979咨询

上一篇:JSP中forward的使用
下一篇:最新手机号码验证正则表达式js版


版权所有 毕业设计网联系qq:242219979 © 2007-2022