Servlet

Servlet:运行在服务器上的java代码,用来处理请求和响应,是前后端交流的桥梁

1.在idea中引入tomcat的lib ,Servlet是由Tomcat创建,

 File---Project Structure(项目结构)---- Labraries---相邻一栏的+----java--找到tomcat中lib包 或者选址选Servlet的jar包

Servlet入门:

1.定义一个类继承HttpServlet  重写service方法

public class UserServlet extends HttpServlet {
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("第一个Servlet程序");
    }
}

2.配置web.xml文件

    <servlet>
        <servlet-name>userServlet</servlet-name>//执行的servlet名字随意取名
        <servlet-class>com.offcn.Servlet.UserServlet</servlet-class>//需要执行的Servlet的完整包名加类名
    </servlet>
    <servlet-mapping>
        <servlet-name>userServlet</servlet-name>//名字与上面Servlet名字一样
        <url-pattern>/userServlet</url-pattern>//访问的地址
    </servlet-mapping>

3.运行

Servlet执行的流程根据地址http://localhost:8080/untitled_war_exploded/userServlet  到web.xml文件的<servlet-mapping>找到

相匹配的名字 根据servlet-name标签找到名字 取servlet标签里匹配  拿到 包名和类型  运行类中service方法

service() doGet()  doPost()的关系

  1. service()方法的底层 也是判断请求方法  然后在调用相应的请求方法

 

  2.一般在开发中使用的就是get post请求 一般会重写 doget()  doPost()方法,service 底层就不用在判断

  1. 解决的方案:

        get()方法调用 post()  解决405的错误

servlet的生命周期

  1.init() 初始化方法  不是tomcat 一启动就初始化,再请求这个servlet的时候就会初始化

  这个方法只执行一

  2.service() 处理所以的请求与响应  所以的请求与响应都会执行这个方法

  3.destroy()销毁的方法tomcat 服务停止 servlet就销毁了

  /userServlet ==>请求的路径是userServlet 才能访问servlet

  /*     ==> 所以的请求与响应都会执行这个servlet ( 启动idea的时候 默认会执行一次请求)

  /admin/*  请求路径是admin下的所以的路径 都可以请求这个servlet

  *.do  只要是以.do结尾的请求请求方式都可以访问到这个servlet 

  get请求 传递参数的时候会直接拼接url地址 不安全

  get  有长度限制

  get 请求参数的记录会保存在浏览器中

  get 传递参数的时候没有进行加密

  get 一般用于做下载

  post与之相反

 

原文地址:https://www.cnblogs.com/frhl/p/13451911.html