JSP--2023/3/23-25

1.JSPHTML与JAVA 两种技术的复合

2.JSP技术特点

JSP和Servlet是本质相同的技术。

当一个JSP文件第一次被请求时, JSP引擎会将该JSP编译成一个Servlet,并执行这个Servlet。

如果JSP 文件被修改了,那么JSP引擎会重新编译这个JSP。

3.JSP引擎会在什么情况下将JSP编译成一个Servlet

JSP文件第一次被请求时或请求的JSP发生改变后

3.JSPServlet区别

JSP以源文件形式部署到容器中。而Servlet需要编译成class文件后部署到容器中。

JSP部署到web项目的根目录,而Servlet需要部署到WEB-INF/classes目录中。

JSP中的HTML代码会被JSP引擎放入到Servlet的out.write()方法中。

而在Servlet中我们需要自己通 过对字符流输出流的操作生成响应的页面。

JSP更擅长表现于页面显示,Servlet更擅长于逻辑控制。

4.请求转发

request.getRequestDispatcher("/XXX.jsp").forword(req,resp );

5.请求转发与重定向的区别

请求转发对于客户端浏览器而言是在一次请求与响应中完成,而重定向是在两次请求两次响应中完

成。

请求转发并不会改变客户端浏览器的地址栏中的内容。而重定向会改变客户端浏览器地址栏中的内

容。

请求转发可以使用request对象传递数据,而重定向不能使用request对象传递数据。

6.JSP中的四大作用域对象

作用域:“数据共享的范围”,也就是说数据能够在多大的范围内有效。

2fd8028a79244c2f9163ecbb4aebc7bc.png

实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BrandModel {
    private Integer id;
    private String name;
    private String enterprise;
    private Integer sort;
    private String introduction;
    private Integer status;

}

 

@WebServlet("/show")
public class ShowServlet extends HttpServlet {
    //把元素放到BrandService
    List<BrandModel> brandModels=new ArrayList<>();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        List<BrandModel> brandModels=new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            BrandModel model = new BrandModel();
            //赋值
            model.setId(1);
            model.setName("加油");
            model.setEnterprise("加油");
            model.setIntroduction("加油");
//            model.setStatus(1);
            model.setStatus(1);
            brandModels.add(model);

        }

//        for (int i = 0; i < brandModels.size(); i+=2) {
//
//        }


        //查询元素
        BrandService brandService=new  BrandService();
        brandModels=brandService.findAll();
        //前端就可以拿到后端传过来的值
        req.setAttribute("brandModels",brandModels);
        req.getRequestDispatcher("/show.jsp").forward(req,resp);
    }
}

添加,查询

public class BrandService {
//   private List<BrandModel> brandModels=new ArrayList<>();

    /**
     * 增加品牌
     * @param brandModel
     * @return
     */
    public String add(BrandModel brandModel) {
//        brandModels.add(brandModel);
        brandModel.setId(BrandDao.brandModels.size()+1);//加序号
        BrandDao.brandModels.add(brandModel);
        return "success";
    }

    /**
     * 查找品牌
     * @return
     */
    public List<BrandModel> findAll() {
        return BrandDao.brandModels;
    }
}

dao
public class BrandDao {
    public static List<BrandModel> brandModels=new ArrayList<>();
}

工具类

public class Tool {

    private Tool(){

    }
    public static Integer strToInt(String value){
//        Integer intSort=0;
        try {
            return Integer.valueOf(value);
        }catch (Exception e){

        }
        return -1;
    }
}

 

9.添加

@WebServlet("/add")
public class AddServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding(StandardCharsets.UTF_8.toString());
        resp.setCharacterEncoding(StandardCharsets.UTF_8.toString());
        String name = req.getParameter("name");
        String enterprise = req.getParameter("enterprise");
        String sort = req.getParameter("sort");
        String introduction = req.getParameter("introduction");
        String status = req.getParameter("status");
//封装数据到mode
//        Integer intSort=0;
//        try {
//            intSort=Integer.valueOf(sort);
//        }catch (Exception e){
//
//        }


//        Tool tool = new Tool();
        BrandModel brandModel=BrandModel
                .builder()
                .name(name)
                .enterprise(enterprise)
                .sort(Tool.strToInt(sort))
                .introduction(introduction)
                .status(Tool.strToInt(status))
                .build();

        //处理逻辑关系
        BrandService brandService = new BrandService();
//      int result =brandService.add(brandModel);
        //返回给前端
        String result =brandService.add(brandModel);
        //转发数据
//        if (true){
//            resp.sendRedirect("/success.jsp");
        resp.sendRedirect("/show");
//
//        }else {
//            resp.sendRedirect("/error.jsp");
//        }
//        req.setAttribute("result",result);
//        req.getRequestDispatcher("/success.jsp").forward(req,resp);


    }
}

 

10.修改

@WebServlet("/update")
public class UpdateServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String sort = req.getParameter("sort");
        BrandModel brandModel=new BrandModel();
        brandModel.setSort(Tool.strToInt(sort));
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值