首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Servlet小事例

2012-12-22 
Servlet小例子Servlet的主要作用是处理WEB服务器发送过来的请求信息(request),并且把响应结果返回给WEB服

Servlet小例子

Servlet的主要作用是处理WEB服务器发送过来的请求信息(request),并且把响应结果返回给WEB服务器(response)。

Servlet的这个功能是靠Servlet引擎(Servlet容器)完成的。servlet小程序也因此需要放在Servlet容器中才能运行。

因此常说Tomcat服务器既是WEB服务器又是Servlet容器。

?

servlet程序代码:TestServlet.java

package com.vmn;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.PrintWriter;//Servlet程序public class TestServlet extends HttpServlet{public void doGet(HttpServletRequest request,HttpServletResponse response){try{response.setContentType("text/html;charset=gb2312");//设置字符集//response.setCharacterEncoding("gb2312");PrintWriter pw = response.getWriter();pw.print("<html>");pw.print("<form action=logincl method=post>");pw.print("用户名:<input type=text name=username><br>");pw.print("密  码:<input type=password name=password><br>");pw.print("<input type=submit value=提交>");pw.print("</form>");pw.print("</html>");}catch(Exception e){e.printStackTrace();}}public void doPost(HttpServletRequest request,HttpServletResponse response){doGet(request,response);}}

?

此类通过重写javax.servlet.HttpServlet类来实现自己的servlet。

12、13行设置响应给客户端的字符编码。否则页面上显示中文时会出现乱码。?

?

?web.xml

<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"    version="2.4">    <servlet><servlet-name>myservlet</servlet-name><servlet-class>com.vmn.TestServlet</servlet-class></servlet><servlet-mapping><servlet-name>myservlet</servlet-name><url-pattern>/ts</url-pattern></servlet-mapping></web-app>

第6行声明了一个servlet,标签使用<servlet>。

第11行声明了servlet的映射,标签使用<servlet-mapping>。

?第7行定义了此servlet的名字为myservlet,第12行的名字需要跟第7行相同,这样就映射过来了。

?第13行定义了访问路径为"/ts"时,请求就会传到myservlet这个servlet。

?第8行定义了这个servlet的实现类:com.vmn.TestServlet。这样请求就会被发送到这个servlet类中。

?

相关API:

?

当提交到logincl这个servlet的时候,在logincl这个servlet中可以通过

request.getParametter("username"); 可以获得myservlet中的属性username的属性值。

?

response.sendRedirect("welcome?username=zhangsan&password=123456");

通过这句话可以把响应返回到welcome这个servlet,并且把参数username和password这两个属性分别赋值zhangsan和123456

注:请求的路径后要用"?"分隔,当需要传多个参数时需要用"&"作为分隔符。

?

request.setCharacterEncoding("gbk");

当request传递中文字符的时候,需要上面这句话设置字符集参数

?

request.getRemoteHost();//获得客户端的IP

request.getServletPath();//获得请求的servlet路径

?

热点排行