zoukankan      html  css  js  c++  java
  • Servlet

    1、常见状态码

    200:请求成功

    302:请求重定向

    304:请求资源没有改变,访问本地缓存

    404:请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。

    500:服务器内部错误。通常程序抛异常。

    2、Tomcat的目录结构

    bin目录下有开启和关闭的命令

    Webapps下是以后发布web程序的地方【打成war包放在webapps下】

    3、什么是Servlet

      Servlet是运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API动态的向客户端输出内容。

    4、servlet三种创建方式

    生命周期

    出生:第一次请求到达,servlet出生

    服务:每次请求到达,都会调用service服务

    死亡:当服务器停止,容器(服务器)会调用destroy方法销毁servlet

    第一种:实现servlet接口

    步骤

    1写一个类实现了servlet接口,重写service方法

    2在web.xml中配置该servlet

    package com.zy.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.Servlet;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    public class MyServlet implements Servlet{
        //普通的类
        //要想让该类具备接收请求,完成响应的功能
        @Override
        public void destroy() {//销毁---servlet生命结束
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public ServletConfig getServletConfig() {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public String getServletInfo() {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public void init(ServletConfig arg0) throws ServletException {//出生---初始化
            System.out.println("servlet出生了");
            
        }
    
        @Override                 //请求                                             //响应
        public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
            // ---最重要的(接收请求,完成响应)
            //接收请求
            System.out.println("收到请求,进入servlet的service方法");
            //响应
            response.getWriter().write("hello world");
            
            
            //生命--
            //出生--服务--死亡
        }
        
    
    }
     <!-- 配置servlet -->
      <servlet>
      <servlet-name>qwer</servlet-name>
      <servlet-class>com.zy.servlet.MyServlet</servlet-class>
      </servlet>
      
     <servlet-mapping>
     <servlet-name>qwer</servlet-name><!-- 与上边匹配 -->
     <url-pattern>/abc</url-pattern><!--url 请求规则 -->
     </servlet-mapping>

    第二种:继承HttpServlet

    package com.zy.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.sun.net.httpserver.HttpServer;
    
    public class MyServlet2 extends HttpServlet{
    //重写doGet和doPost[]
        
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //写代码!!!!!!!!!!!!!!!!
            System.out.println("收到请求,进入了doGet方法");
            
            resp.getWriter().write("hello zhiyou");
        }
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //doPost一般直接调用doGet
            doGet(req, resp);
        }
        
    }
    <servlet>
        <servlet-name>abc</servlet-name>
        <servlet-class>com.zy.servlet.MyServlet2</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>abc</servlet-name>
        <url-pattern>/bcd</url-pattern>
      </servlet-mapping>

    第三种:注解版

    package com.zy.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class MyServlet3
     */
    
    //基于最新注解版servlet(不用配置web.xml,用注解代替了这段配置)
    @WebServlet("/MyServlet3")//[这就是url-pattern]
    public class MyServlet3 extends HttpServlet {
        
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            System.out.println("接收请求,进入doGet方法");
            response.getWriter().write("hello ruhua");
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        
            doGet(request, response);
        }
    
    }

    5、url-pattern

    三种模式:

    完全匹配: /abc

    目录匹配: /aaa/bbb/*

    后缀匹配:*.action

    package com.zy.servlet2;
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class ParameterServlet
     */
    @WebServlet("/ParameterServlet")
    public class ParameterServlet extends HttpServlet {
        
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //如果请求中含有参数,我们怎么去接收到servlet中
            //url 传参方式(?好传参,参数以键值对出现)
            //localhost:8080/web01/ParameterServlet?name=xiaoming
            //中文参数
            //localhost:8080/web01/ParameterServlet?name=老王
            
            //n个参数
            //localhost:8080/web01/ParameterServlet?name=老王&age=10&address=湖南
            
            //怎么接收参数
            //java面向对象的思想:xxx对象处理xxx事情
            //分析事情:接收请求中的参数问题
            //调用request的api
            String parameter = request.getParameter("name");//根据键取值
            String parameter2 = request.getParameter("age");
            String parameter3 = request.getParameter("address");
            System.out.println(parameter);
            System.out.println(parameter2);
            System.out.println(parameter3);
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
  • 相关阅读:
    Python内置函数
    101-搭建django工程
    100-开发环境
    Appium
    Maven用途
    Extjs 可重用组件开始写 2014 8 23日
    关于开发方面可重用性的思考
    Extjs 常见错误
    21个jQuery经典特效0积分下载
    设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。
  • 原文地址:https://www.cnblogs.com/qfdy123/p/11169734.html
Copyright © 2011-2022 走看看