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()的关系
- service()方法的底层 也是判断请求方法 然后在调用相应的请求方法
2.一般在开发中使用的就是get post请求 一般会重写 doget() doPost()方法,service 底层就不用在判断
- 解决的方案:
让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与之相反