• Servlet常用接口、类及其方法


    Servlet常用接口、类及其方法

    在Web编程中使用servlet时,开发者主要用到doGet和doPost方法。当发出客户端请求的时候,调用Servlet的service方法并传递一个请求和响应对象。Servlet首先判断该请求是GET操作还是POST操作。然后分别调用doGet或doPost方法。doGet和doPost都接受请求(HttpServletRequest)和响应(HttpServletResponse)。

    GET请求:表单和地址栏都是GET请求。

    POST请求:只有表单请求。

    1. doGet()

      当客户端发送HTTP请求使用GET方法时就调用doGet()方法。HTTP缺省方法就是GET。

    public class DoGetServlet extends HttpServlet {
        public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
            request.setCharacterEncoding("gb2312");
            PrintWriter out = response.getWriter();
            out.println("The user ID is :"+request.getParameter("userID"));
            out.println("The user password is :"+request.getParameter("userPWD"));
        }
    }
    
    1. doPost()

      当客户端发送HTTP请求使用POST方法时就调用doPost()方法。Post适合发送大量的数据.

      
      public class DoPostServlet extends HttpServlet {
          public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
              request.setCharacterEncoding("gb2312");
              PrintWriter out = response.getWriter();
              out.println("The user ID is :"+request.getParameter("userID"));
              out.println("The user password is :"+request.getParameter("userPWD"));
          }
      }  
      

    HttpServletRequest接口

    1)getParameter()

    public String getParameter(String key)

    此方法试图将根据查询串中的关键字定位对应的参数并返回其值。如果有多个值则返回列表中的第一个值。如果请求信息中没有指定参数,则返回null。

    2)getParameterValues():

    public String[] getParameterValues(String key)

    如果一个参数可以返回多个值,比如复选框集合,则可以用此方法获得对应参数的所有值。如果请求信息中没有指定参数,则返回null。

    HttpServletResponse接口

    1)setContentType():

    public void setContentType(String type)

    在给调用者发回响应前,必须用此方法来设置HTTP响应的MIME类型。可以是任何有效的MIME类型,当给浏览器返回HTML是就是”text/html”类型。

    2)getWriter():

    public PrintWriter getWriter()throws IOException

    此方法将返回PrintWriter对象,把servlet的结果作为文本返回给调用者。PrintWriter对象自动把Java内部的UniCode编码字符转换成正确的编码以使客户端能够阅读。

    3)getOutputStream():

    public ServletOutputStream getOutputStream() throws IOException

    此方法返回ServletOutputStream对象,它是java.io.OutputStream的一个子类。此对象向客户发送二进制数据。

    4)setHeader():

    public void setHeader(String name,String value)

    此方法用来设置送回给客户的HTTP响应头。有一些快捷的方法用来改变某些常用的响应头,但有时也需要直接调用此方法。

    Servlet接口 JSP内置对象
    HTTPServletRequest request
    HTTPServletResponse response
    ServletConfig config
    HTTPSession Session
    ServletContext application 两种取得方式(对应两种初始化方法) ①无参数初始化方法:不写,直接取得 ②如果针对有构造(init(ServletConfig))方法则必须通过config对象取得

    Servlet的环境配置和运行

    1. web.xml文件

    基本的web.xml,内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">
    
    </web-app> 
    

    现在配置一个项目的缺省访问文件。在之前加入以下语句:

    <welcome-file-list>
    		<welcome-file>exa.html</welcome-file>
    		<welcome-file>index.htm</welcome-file>
    		<welcome-file>index.jsp</welcome-file>
    	</welcome-file-list>
    

    这几句设置,意思是当IE中输入http://127.0.0.1:8080/xxx(或其他域名、IP地址输入形式)而不输入Web页文件名时,查找调用页面文件的顺序为exa.htm→index.htm→index.jsp,找到那一个,就显示那一个;没有找到,就出现访问资源不存在的错误 或者列出目录下的所有文件和子目录。缺省访问文件的配置不是必需的。

    Servlet要在web.xml中注册了才能访问。现在举一个最简单的例子。

    一个最简单Servlet,文件名ServletExample.java,代码如下:

    img

    经过编译,按其中包的定义(package exa;)形成字节码文件ServletExample.class,放在chpt/WEB-INF/classes中,则在web.xml中注册的语句可以写成:

    <servlet>
    		<servlet-name>ServletExample</servlet-name>
    		<servlet-class>exa.ServletExample</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>ServletExample</servlet-name>
    		<url-pattern>/servexa</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>ServletExample</servlet-name>
    		<url-pattern>/newunknownUniversity.edu.cn</url-pattern>
    	</servlet-mapping>
    

    如图所示,两个映射地址访问的效果是一样的。

    img

    img

    映射访问地址只是一种形式,可以随意定义,只要第一个字符是“/”,且不与其他资源重名就可以。允许多次映射,使得资源可以用多种形式访问。

    注意: 每次修改web.xml文件后,都要重启服务器,这样新的配置才可以起作用。

  • 相关阅读:
    用户身份与文件权限
    W3school——javascript笔记
    第十一章——常用的Web应用程序
    探究CBV视图
    Django objects.all()、objects.get()与objects.filter()之间的区别介绍
    RTX检索COM 类工厂出错
    Oracle存储过程实例
    Oracle返回数据集
    Oracle数据库创建表空间、创建表、授权
    JS传参出现乱码的种种分析
  • 原文地址:https://www.cnblogs.com/actorhuang/p/13507600.html
Copyright © 2020-2023  润新知