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路径

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值