第一章 Servlet

JavaEEe技术包括Servlet/Jsp、Java Message Service(JMS)、Enterprise JavaBeans(EJB)、JavaServer Faces(JSF),以及Java Persistence。运行JavaEE应用程序,须要一个JavaEE容器,如JBoss。html

 

 

ServletAPI中有4个Java包,包括:java

javax.servlet :包含定义Servlet与Servlet容器之间契约的类和接口。编程

javax.servlet.http :包含定义HTTP Servlet与Servlet容器之间契约的类和接口。数组

javax.servlet.annotation :包含对Servlet、Filter和Listener进行标注的注解。它还为标注元件指定元数据。浏览器

javax.servlet.descriptor :包含为Web应用程序的配置信息提供编程式访问的类型。服务器

 

javax.servlet中主要的类型:cookie

Servlet > GenencServletsession

ServletRequestjsp

ServletReponse字体

ServletContext

ServletConfig

Requestpatcber :我接触的比较少

Filter :我接触的比较少

 

javax.servlet.http中主要的类型:

GenericServlet>HttpServlet

HttpServletRequest

HttpServletResponse

HttpSession

Cookie

 

 

Servlet容器为每一个应用程序建立一个ServletContext实例。这个对象封装context(应用程序)的环境细节。每一个context只有一个ServletContext。每一个Servlet实例还有一个封装Servlet配置信息的ServletConfig。

 

Servlet接口定义的五个方法:

生命周期方法:

init(ServletConfig config)

service(Servlet request, Servlet response)

destroy()

非生命周期方法:

getServletInfo()

getServletConfig()

 

 

jsp页面、html页面、图像、其余资源应该放在应用程序目录下。若是资源只想被servlet访问,则放在WEB-INF目录下。

 

 

ServletRequest接口中方法:

getContentLength() :获得字体中字节数,不知道长度,则返回-1。

getContentType():获得主题MIME类型,不知道类型,则返回null。

 

用于得到HTML表单域的值,或者得到查询字符串的值

getParamter(String name)

getParamterNames()

getParamterMap()

getParamterValues()

 

 

ServletReponse接口中方法:

setContentType() :设置响应的内容类型

getWriter() :获得输出字符的流

getOutputStream() :获得输出二进制流

 

 

ServletConfig接口中方法:

getInitParameter(String name) :获得某个初始参数的值

getInitParameterNames() :获得全部初始参数名称

getServletContext() :获得ServletContext对象

 

 

保存在ServletContext中的数据称为属性,ServletContext提供的处理属性的方法:

getAttribute(String name)

getAttributeNames()

setAttribute(String name, Object object)

removeAttribute(String name)

 

 

HttpServletRequest接口中的新增的方法:

getContextPath() :返回请求的URI部分

getCookies() :返回一个Cookie对象数组

getHeader(String name) :返回指定的HTTP标头

getQueryString() :返回这条请求的查询语句

getMethod() :发送这条请求的方法

getSession() :返回与这个请求有关的session对象,找不到则新建立一个

 

 

HttpServletResponse接口中的新增的方法:

addCookie(Cooke cookie) :给这个响应对象添加cookie

addHeader(String name, String value) :给这个响应对象添加标头

sendRedirect() :发送响应代号,将浏览器重定向到指定位置

 

 

处理HTML表单:

HTML输入域(文本域、隐藏域或密码域)或者文本域的值被看成一个字符串发送到服务器。对于空白的输入域或者文本域将发送一条空白的字符串。所以,带有一个输入域名称的ServletRequest.getParameter将永远不会返回null。

 

HTML的select元素还会给标头发送一个字符串。若是没有选择select元素中的任何选项,那么将会发送所显示的选项值。

 

对于一个带有多个值的选择元素(即容许多个选项的select元素,用<select multiple>表示)是发送一个字符串数组,而且必须由ServletRequest.getParameterValues进行处理。

 

复选框比较特别一些。被选中的复选框将字符串 "on" 发送到服务器。没有被选中的复选框则不发送任何内容到服务器,而且ServletRequest.getParameter(fieldname)返回null。

 

单选按钮将被选按钮的值发送到服务器。若是没有选中任何按钮,则不发送任何内容到服务器,而且ServletRequest.getParameter(fieldname)返回null。

 

若是一个表单包含多个同名的输入元素,那么全部的值都会提交,必须用ServletRequest.

getParameterValues来获取它们。ServletRequest.getParameter将只返回最后一个值。

 

 

部署描述符好处:

1.能够包含WebServlet没有的元素

2.若是须要修改配置,如Servlet路径,不须要从新编译Servlet

3.能够将一个初始参数传递给Servlet,而且不须要从新编译Servlet类,就能够对它们进编辑

4.部署能够覆盖注解中指定的值

相关文章
相关标签/搜索