浅淡Servlet技术


在学习Servlet之前,首先了解下Web应用程序的访问过程

        用户在浏览器中输入一个网址后按(Enter),浏览器会向服务器发送一个HTTP请求;服务器端程序接收这个请求,并对请求进行处理,然后发送一个回应;浏览器收到回应,再把回应的内容显示出来,这种请求—响应(Request—Response)就是典型的Web应用程序访问过程。 JavaWeb应用程序中,处理请求并发送响应的过程是由一种叫做Servlet的程序来完成的。

 


 

1、什么是servlet?

    servlet是使用应用程序设计接口(API)以及相关类和方法的Java程序,是位于Web服务器内部的服务器端的Java应用程序。servlet是一种实现Javax.servlet.Servlet接口的类,Servlet接口规定了特定的方法处理特定的请求,开发者只需要实现Servlet的相关方法。可简单理解为运行在服务器端的Java程序。

 


 

2、servlet的工作流程

(1)浏览器提交请求,由服务器接收并解析,封转成HttpServletRequest类型的request对象。所有的HTTP头类型的数据可以通过request相应的方法获得。

(2)服务器把输出流封转成为HttpServletResponse类型的response对象。通过设置response的属性就可以控制输出的内容。

(3)服务器把request、response作为参数,调用servlet的相应方法,如doPost(request,response)。

 


 

3Servlet生命周期 

       服务器会在启动或者是第一次请求Servlet时初始化一个Servlet对象,然后使用该对象处理客户端的请求,当服务器关闭时销毁该对象。Servlet从生成到销毁必须经过如下几个步骤。

1)生成Servlet,加载到Servlet Engine中,并通过调用其init()方法来进行初始化。

2)通过提供的响应方法来处理客户端的请求。

3)调用destroy()方法进行销毁,并通过垃圾收集器进行收集清理。 

 


 

4HttpServlet常用方法

(1)doGet方法

   doGet方法用来处理客户端浏览器直接访问和get方式提交的表单。使用doGet方法进行表单的提交,所传递的参数会直接显示在浏览器的地址栏中。

(2)doPost方法

   用来处理表单post方式提交的表单,不能处理客户端浏览器直接访问。doPost方法进行表单的提交,传递的参数不会直接显示在地址栏中,相对doGet方法要安全一些。

(3)service方法

   用来处理客户端浏览器直接访问和表单get方式提交的表单以及表单post方式提交的表单。

 


 

5、Servlet常用接口 

(1)HttpServletRequest接口 

          request对象其实就是HttpServletRequest接口实现类的一个实例,不过其实例化过程是自动的无须自定义的,是由服务器完成的。Servletrequest对象也是由容器初始化的,如果要在程序中使用request对象,直接使用就是,无需手动初始化。

(2)HttpServletResponse接口

         response对象其实就是HttpServletResponse接口的实现类一个实例,不过其实例化过程是自动的无须自定义的。

(3)HttpSession接口   

   在Servletsession对象必须通过request对象的getSession()方法来获得。

       HttpSession session = request.getSession();

(4)ServletContext接口

application对象其实就是ServletContext接口实现类的一个实例,不过其实例化过程是自动的无须自定义的。Servletapplication对象必须通过HttpServlet接口的getServletContext()方法获得。

          ServletContext  application  = request.getServletContext();

 


 

5、servlet之间的跳转

(1)请求转发

      请求转发(forward)是通过RequestDispatcher对象的forward(request,response)方法实现的。

     具体代码如下:

                    RequestDispatcher    dispatcher    =    request.get RequestDispatcher(“/login_servlet”);   //获得RequestDispatcher对象

                         dispatcher.forward(request,response);   //实现跳转

 


 

6、下面通过一个例子来说明,如何创建servlet、配置servlet和访问servlet

(1)表单     

 <form action="servlet/test" method="post"><!--指定提交action和提交method-->
             姓名:<input type="text" name="userName"><br>
             密码:<input type="password" name="password"><br>
                  <input type="submit"  value="提交">
 </form>


 

(2)创建servlet

 

public class test extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);//调用doPost处理客户端请求
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {  
                //处理客户端提交的post请求,并作出响应
		request.setCharacterEncoding("utf-8");//设置页面编码方式
		String name = request.getParameter("userName");//获取参数
		String password = request.getParameter("password");
		System.out.println(name);
		System.out.println(password);
	}
	        public test() {
		super();
	}
	public void destroy() {
		super.destroy(); 
		
	} public void init() throws ServletException {}}
 
 
(3)配置web.xml 

 

<servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>cn.ahut.servlet.test</servlet-class>
</servlet>

 <servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>/servlet/test</url-pattern>  
 </servlet-mapping>


(4)访问

在地址栏中输入:http://localhost:8080/servletExample/

如果是直接访问servlet则输入:http://localhost:8080/servletExample/servlet/test







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值