zoukankan      html  css  js  c++  java
  • Servlet 的API

    1书写一个servlet的方式

    Servlet必须直接或间接实现 javax.servlet.Servlet 接口

    通过继承javax.servlet.GenericServlet 类实现跨协议的 Servlet

    通过继承javax.servlet.HttpServlet实现HTTP Servlet

    自己定义个servlet,然后其他的java类都继承自己写好的servlet就可以了

    2关系图

     

    3、其他内容

    Servlet接口:所有servlet必须直接或间接实现的类。

    init( ServletConfig config )

    service(ServletRequest req, ServletResponse res)

    destroy()

    getServletInfo():获得Servlet信息。

    getServletConfig():获得Servlet配置相关信息

    GenericServlet抽象类:implements Servlet, ServletConfig

    定义了一个通用的,不依赖于具体协议的Servlet,给出了除service()方法外的其余四个方法的实现。

    public void init(ServletConfig config) thows SerletExcepiton

    protected  void init() thows SerletExcepiton

    第一个是servlet接口的init(),调用第二个init(), 重写第二个init()即可

    HttpServlet类

    public void service(ServletRequest req, ServletResponse res)

    protected void service(HttpServletRequest req, HttpServletResponse res)

    protected void doGet(request,response)

    protected void doPost(request,response)

    public service()是父类的方法,protected service()是自己的方法。前者首先把参数分别转换为HttpServletRequest和HttpServletResponse ,再调用protected service();

    protected service()根据HTTP请求方法的类型调用相应doXXX()方法

    我们自己编写的servlet应该继承HttpServlet,一般要覆盖Service或者doPost/doGet方法。

    第五节 参数读取

    1配置参数读取的意义:

    把参数提取到配置的信息中这样就大大的增加了整个代码的使用性方面后期的代码维护

    需要知道, 在这里的参数读取仅仅是读到程序里面。

    2、实现代码

    public class ParamServlet  extends HttpServlet{

    String  enc ;

    String encc;

    String  enc2;

    @Override

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)

    throws ServletException, IOException {

             System.out.println("初始化参数:"+enc);

             System.out.println(encc);

    System.out.println("上下文参数:"+enc2);

    }

    @Override

    public void init() throws ServletException {

    //获得初始化参数

     enc = this.getInitParameter("enc");

    //获得初始化参数的形式二

     encc= this.getServletConfig().getInitParameter("enc");

    //获得上下文参数    this.getServletContext()---获得全局的对象

     enc2 = this.getServletContext().getInitParameter("enc2");

     System.out.println("读取初始化参数完毕");

    }

    }

    第六节 中文乱码处理

    1、为什么使用中文乱码

    我们在实现登录时候 ,需要进行前台的数据。获得数据以后可能会出现中文乱码,那应该如何处理呢?

    2get方式和Post提交方式的区别

    [1]get数据的传输是不安全的 ,post数据传递更加安全

    [2]get方式数据传递有大小限制  post传输数据没有限制

    [3]get传输的数据速度比较快  post比较慢

    3、乱码处理

        大家需要清楚,这个乱码是接受前台页面数据的乱码。

    乱码分为两种  get和post)

    POST方式处理

       request.setCharacterEncoding("utf-8");

    GET方式处理

        {方式一}

         byte [] bytes = str.getBytes("iso-8859-1");

         String  cstr =  new String(bytes,"utf-8");

        {方式二}

        在server.xml中指定对应的服务器编码

            URIEncoding="utf-8"

  • 相关阅读:
    数据库——Oracle(7)
    数据库——Oracle(6)
    数据库——Oracle(5)
    数据库——Oracle(4)
    数据库——Oracle(3)
    数据库——Oracle(2)
    Java 学习笔记之 Synchronized锁对象
    Java 学习笔记之 线程安全
    Java 学习笔记之 实例变量非线程安全
    Java 学习笔记之 方法内的临时变量是线程安全
  • 原文地址:https://www.cnblogs.com/vincentmax/p/14277508.html
Copyright © 2011-2022 走看看