一、servlet的配置信息
当我们创建Servlet后,会在webRoot/web-inf目录下的web.xml文件中自动生成这个Servlet的配置:
<servlet>
<description>对类的描述信息</description>
<disply-name>disply名称</disply-name>
<servlet-name>类名</servlet-name>
<servlet-class>类所在的位置</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>类名</servlet-name>
<url-pattern>/url路径</url-pattern>
</servlet-mapping>
web.xml中<servlet>和<servlet-mapping>元素说明了客户端(页面)请求的servlet路径。<description>和<disply-name>不是必须的。其中,<servlet>元素中的名字和<servlet-mapping>中的名字必须一致,即对应的<servlet-name>必须相同。这样请求<url-pattern>中配置的url时,就找出对应的<servlet-name>元素,根据<servlet-name>找到对应的<servlet-class>配置名字,通过配置的<servlet-class>值创建这个servlet类的对象,并调用其中的方法处理请求(request)和响应(response)对象。
二、常用对象
servlet中常用的对象有:
1.request对象:
客户端的请求参数被封装在request对象中,经过它才智获知客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2.response对象:
response对象包含了响应客户请求的有关资料。它是HttpServletResponse类的实例。
3.session对象:
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个连接开始,直到客户端与服务器断开联接为止。它是HttpSession类的实例。
4.out对象:
out对象是PrinterWriter类的实例,是向客户端输出内容经常用的对象
5.servletContext对象:
servletContext对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在。服务器的启动和关闭决定了servletContext对象的生命。它是ServletContext类的实例。
三、接收客户端的请求参数
这里指的客户端也就是浏览器,浏览器发送到服务器的请求参数是通过request对象来得到的,request对象通过调用getParameter("参数名")方法来获取。
四、servlet中的转发方式
servlet中页面的转发方式有三种:
第一种方式:request.getRequestDispatcher("/url").include(request,response);这种方法是将url中的内容包含到当前的servlet输出当中,在服务器端完成,称为包含。
第二种方式:request.getRequestDispatcher("/url").forward(request,response);这种方式是将当前request和response交给制定的url处理,一般称做转发请求,在服务器端完成,客户端地址栏看到的路径还是当前servlet的路径。
第三种方式:response.sendRedirect("/url");这种方式指示客户端重新发送一次请求,第二个请求指向其参数url,一般称做重定向,客户端的地址栏将改变为url值,是由客户端发起的第二次请求。
五、get和post方法乱码问题
在提交html或者jsp中表单和响应客户端时,如果数据包含中文就会出现乱码,要解决中文乱码问题,需要在获取数据前设置request编码 :request.setCharacterEncoding("gbk"); 在响应客户端时设置响应结果字符值。
六、运行时参数的设置
servlet运行时参数可以在web.xml中配置,在web.xml中配置如下:
<init-param>
<param-name>参数名</param-name>
<param-value>值</param-value>
</init-param>
在web.xml文件相应的servlet的标签内输入以上代码,就设置了一个运行是参数。在servlet中通过调用this.getInitParameter("变量名"); 即可得到最开始设置的值。