Servlet

servlet

什么是servlet

用java编写运行在web容器的小程序;

servlet的生命周期

实例化:构造方法;

初始化init();

处理请求service();n次

服务终止destory();

使用servlet

注释

继承HttpServlet

重写方法

@WebServlet("/hello2")---->注释
public class Hello2Servlet extends HttpServlet {---->继承HttpServlet
    //重写 doGet 方法
    @Override----->重写方法
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置响应类型
        response.setContentType("text/html;charset=utf-8");
        //得到打印流
        PrintWriter out = response.getWriter();
        //在浏览器打印输出
        out.print("<h2>我是 Servlet3.0</h2>");
    }
}

servlet执行原理:

​ 接收请求,实例化servlet,通过webServlet找到对应方法,浏览器对象通过request发送到后台

后台通过reponse将数据传到浏览器;

什么是HTTP协议

规定请求和响应的传输格式

HTTP协议的组成

1,请求行

2,请求头

3,请求体(只有post才有)

postget
地址栏数据在请求体中发送,所以地址上不显示 参数因为是请求行中发送数据,所以在地址栏上可以看 参数
大小理论上没有限制大小不同的浏览器有区别, 2K
安全性安全性更高安全性更低
缓存POST 邮寄, 发送数据不使用本地缓存GET 拿,从服务器上获取数据,会使用缓存。如果 本地浏览器已经缓存页面,而且服务器的数据没有 修改, 不再从服务上得到数据。

HttpServletRequest

.getMethod();---得到请求方式
.getRequestURL();----得到请求地址
.getContextPath();----得到项目名称

得到前端的参数:--get或post都可以通过以下方法获得数据 
	.getParament(String name);得到一个参数
	.getParamentValues(String name);得到下拉框
	.getParamentNames();得到全部
	.getParamnetMap();得到Map<String ,String[]>结合BeanUtils.populate(user, map);一起使用

请求域

三个:请求域;会话域;上下文域

方法:

​ .setAttribute(key,value);

​ .getAttribute(key);

​ .removeAttribute(key);

作用域接口名作用范围生命周期
请求域HttpServletRequest一个用户的一次请求每次请求就结束
会话域HttpSession一个用户的所有请求会话过期结束
上下文域ServletContext所有用户的所有请求服务器关闭才结束

cookie是浏览请保存对象的域;

转发和重定向区别

转发重定向reponse.sendRedirect();
根目录服务端的根目录 http://localhost:8080/项目地址/浏览器的根目录 http://localhost:8080
地址栏不会变
跳转者在服务端进行跳转在浏览器端跳转
请求域不会丢失会丢失

错误号码

状态码含义
200正确的从服务器得到响应的数据
302表示页面重定向
304使用的是本地缓存,并没有从服务器上再次下载网页
404找不到服务器上指定的资源
405如果客户端使用 GET/POST 方法提交,而服务器端没有 doGet/doPost 方法,就 会出现 405 错误
500服务器出现内部错误,一般是 Servlet 中的代码有错误

HttpServletResponse

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值