servlet基础知识

来源:互联网 发布:大数据产业联盟 编辑:程序博客网 时间:2024/04/29 07:23
一.servlet定义以及作用:   1.  Servlet是用Java编写的Server端程序,它与协议和平台无关。Servlet运行于Java-enabled Web Server中。Java Servlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。    作用:(1).接收客户端请求;          (2).响应服务端数据给客户端;二.servlet运用:   1.配置好tomcat,并将其导入eclipse内;   2.创建servlet文件         (1).在WEB-INF→web.xml里         (2).servlet初始化参数传递         (3).启动时加载以及虚拟映射使用
 
<servlet>  <!-- 类名 -->    <servlet-name>Servlet01</servlet-name>  <!-- 所在的路径 -->    <servlet-class>servlet02.Servlet01</servlet-class>  <!-- 初始化账号参数传递,在servlet初始化方法内这样使用   public class Servlet01 extends HttpServlet {private String name;private String password;public void init(ServletConfig config) throws ServletException {System.out.println("Servlet01的初始化方法");String username=config.getInitParameter("name");String password=config.getInitParameter("psw");System.out.println("用户名 :"+username+"  密码:"+password);}-->  <init-param>     <param-name>name</param-name>  <!-- 初始化账号的值-->     <param-value>root</param-value>  </init-param>   <init-param>  <!-- 初始化密码参数传递 -->   <param-name>psw</param-name>     <param-value>password</param-value>  </init-param>  <!-- 启动时加载,“1”为多个的时候的加载顺序 -->     <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>   <!-- 类名 -->    <servlet-name>Servlet01</servlet-name>   <!-- 虚拟映射地址,/Servlet01可随便取名,只要在歌厅或者post请求里的action动作内输入新取的映射地址即可 -->    <url-pattern>/Servlet01</url-pattern>  </servlet-mapping>
三.servlet处理表单数据:




(1)请求处理:




request.getParameter();
                String userName=request.getParameter("name");String passWord=request.getParameter("psw");String Age=request.getParameter("age");String Business=request.getParameter("business");String Telephone=request.getParameter("tel");System.out.println("用户名:"+userName+"密码:"+passWord+"年龄:"+Age+"职业:"+Business+"密码:"+passWord+"电话:"+Telephone);





(2)响应处理:
response.getWriter();
PrintWriter pw=response.getWriter();
        pw.println("用户名:"+userName+"密码:"+passWord+"年龄:"+Age+"职业:"+Business+"密码:"+passWord+"电话:"+Telephone);
        pw.flush();
        pw.close();



(3)servlet页面跳转的两种方式:



1.请求转发:
         if(user!=null){request.getRequestDispatcher("success.html").forward(request, response);}else{request.getRequestDispatcher("fail.html").forward(request, response);  }


2.重定向:()
                response.sendRedirect("success.html");      3.两者区别:

<1>,请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保持,地址栏的URL地址会改变。

<2>,请求转发:服务器行为,request.getRequsetDispatcher().forward(requset,response);是一次请求,转发后请求对象会保存,

地址栏的URL地址不会改变。(服务器内部转发,所有客户端看不到地址栏的改变)

(4).中文乱码问题(即编码与解码方式不一致引起的)

<1>.get请求乱码:

在servers→tomcat→server.xml里更改端口号的位置后面加入一句 URIEncoding=“UTF-8

               <!-- Define an AJP 1.3 Connector on port 8009 -->               <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>               <!-- An Engine represents the entry point (within Catalina) that processes                every request.  The Engine implementation for Tomcat stand alone                analyzes the HTTP headers included with the request, and passes them                on to the appropriate Host (virtual host).                Documentation at /docs/config/engine.html -->



<2>get响应乱码:



            response.setContentType("text/html;charset=UTF-8"); <3>post请求乱码:  
             request.setCharacterEncoding("UTF-8"); <4>post响应乱码: 
             response.setContentType("text/html;charset=UTF-8");









                                             
1 0
原创粉丝点击