Java wed笔记(二)①

一、servlet的跳转:
        1.可以从servlet跳转到另外一个servlet(删除数据之后返回到刷新查询servlet)
        2.可以从servlet跳转到前台页面(注册成功返回登录页面)
    
    转发跳转:   只需1次请求即可完成  效率高    URL地址不会改变  例如从B转发到A  URL地址依然是B
           重定向跳转: 只需2次请求即可完成  效率低     URL地址会改变   例如从B定向到A  URL地址就是A

            总结:能用转发就用转发。但是以下情况不推荐:涉及到敏感操作一定不能使用转发,
            涉及到注册操作.涉及到增删改都推荐使用重定向

            备注:超链接本质就是重定向跳转

二、Servlet的四大作用域
    有些情况下:我们需要实现后台servlet的数据共享(先掌握这里)
    有些情况下:我们需要实现后台servlet和前台页面的数据共享(暂时不讲解)
    比如:后台查询到了数据 需要丢给前台去渲染

    四大作用域:pageContext < request < session < application
    pageContext作用域:仅在当前页面有效,只要页面发生了跳转就失效。 所以不用
    request作用域:重点掌握:作用域一次请求有效。超过一次请求就失效,所以切忌使用重定向跳珠
    session作用域:重点掌握:作用域一次回话有效。(浏览器打开到关闭为一次回话)
    application作用域:了解即可:作用域全局有效。只想项目不关,就一直生效,例如网站访问量
四、测试四大作用域
①<a href="FServlet">测试request作用域</a> <hr>
@WebServlet("/FServlet")
public class FServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        request作用域:重点掌握:作用域一次请求有效。超过一次请求就失效
        //如何存储数据  注意key要保证唯一,否则会被覆盖
//        req.setAttribute("key","aa");

        req.setAttribute("username","张三");

        req.getRequestDispatcher("ZServlet").forward(req,resp);
//        resp.sendRedirect("ZServlet");

    }
}

②<a href="GServlet">测试session作用域</a> <hr>
@WebServlet("/GServlet")
public class GServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        session作用域:重点掌握:作用域一次会话有效。浏览器关闭就失效
        //如何存储数据  注意key要保证唯一,否则会被覆盖
        //1.获取session对象
        HttpSession session = req.getSession();
        //2.存值
        session.setAttribute("username","李四");
        //简写req.getSession().setAttribute("aa,","xx");


        req.getRequestDispatcher("ZServlet").forward(req,resp);
//        resp.sendRedirect("ZServlet");

    }

③<a href="HServlet">测试application作用域</a> <hr>
@WebServlet("/HServlet")
public class HServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//       application作用域:了解即可:作用域全局有效。只想项目不关,就一直生效,例如网站访问量
        //如何存储数据  注意key要保证唯一,否则会被覆盖
        //1.获取application对象
        ServletContext context = req.getServletContext();
        //2.存值
        context.setAttribute("username","王五");
        req.getRequestDispatcher("ZServlet").forward(req,resp);
//        resp.sendRedirect("ZServlet");

    }

五、网页的三大校验
第一层:前台校验,一般通过JS可以实现。  可以解决大部分的问题。
缺点1:可以通过浏览器关闭使用JS
缺点2:可以通过各种工具来绕过JS,直接访问Java后台代码  例如postman等


第二层校验:后台Java校验  一般就是长度校验,非空校验等等


第三层校验:数据库校验   一般通过约束来实现。
主键约束
外键约束
自增约束
唯一约束
非空约束
检查约束 : 近些年才开放其功能  之前仅仅是支持语法,不支持功能。  现在已经完全开放  使用高版本的mysql和navicat即可使用。
默认约束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值