做crud遇到的问题

1.crud的流程

1 流程: servlet调service进行业务处理
service调dao完成数据库操作
dao在把数据库操作结果在给service
service继续处理在把结果返回给servlet
servlet在根据service的处理结果选择是请求转发还是重定向来显示页面

2.登录功能效验实现

2 流程(登录功能效验实现):
servlet层中UserServlet调UserServiceImpl
UserServiceImpl调UserDaoImpl
UserDaoImpl操作数据库看能不能找到 若有封装成User对象 把User对象 返回给service层
service层返回给servlet 在servlet里看有没有这个人

3.关于数据库版本问题

1.关于数据库的版本问题 会导致访问数据库失败 此时需要在idea中的database中从新配置
同时driver是com.mysql.cj.jdbc.Driver而不是com.mysql.jdbc.Driver
相对应的新版本都需要加上时区serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false,
不然都会报错!

参考:
(https://blog.csdn.net/q1406689423/article/details/89845338)

(https://blog.csdn.net/Mr_h0ng/article/details/103827362)

4.servlet重定向路径总结

相当路径:从当前请求的路径查找资源的路径
相对路径如果servlet的别名中包含目录 会造成重定向资源查找失败
绝对路径:第一个/表示服务器根目录
/虚拟项目名/资源路径

5.servlet请求转发

/表示项目根目录 req.getRequestDispatcher("/资源路径").forward(req,resp);

6.Navicat 8.x的mysql语句

参考:https://blog.csdn.net/qq_27495157/article/details/80240156

7.jstl出现的问题

使用jstl时报错 org.apache.jasper.JasperException: org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
等 因为<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>写成了
<%@ taglib uri=“http://java.sun.com/jstl/core” prefix=“c”%>

8.代码

servlet

package com.bjpowernode.servlet;

import com.bjpowernode.pojo.dept;
import com.bjpowernode.service.DeptService;
import com.bjpowernode.service.impl.DeptServiceImpl;
import org.apache.log4j.Logger;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class DeptServlet extends javax.servlet.http.HttpServlet {
   
    //声明日志
    Logger logger = Logger.getLogger(DeptServlet.class);
    //获取service层对象
    DeptService ds = new DeptServiceImpl();
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   

              //设置请求编码格式
                req.setCharacterEncoding("utf-8");
              //设置 响应/处理 编码格式
                resp.setContentType("text/html;charset=utf-8");
              //设置操作符
                String oper = req.getParameter("oper");
                //调用对应方法
                DeptUpdate(req,resp);
                if("select".equals(oper)){
   
                    //查询
                    DeptSelect(req,resp);
                }else if("insert".equals(oper)){
   
                    //添加
                    DeptInsert(req,resp);
                }else if("delete".equals(oper)){
   
                    //删除
                    DeptDelete(req,resp);
                //}else if("update".equals(oper)){
   
                    //更新

                }else{
   
                    logger.debug("没有找到对应的操作符");
                }

    }

    //部门更新
    private void DeptUpdate(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
        //处理请求信息
        //获取service层对象
        List<dept> ld = ds.DeptUpdateService();
        if(ld!=null){
   
            //获取数据存储到request
            req.setAttribute("ld",ld);

            //请求转发
            req.getRequestDispatcher("/servlet_dept3.jsp").forward(req,resp);
            //return;
        }
    }


    //部门添加
    private void DeptInsert(HttpServletRequest req, HttpServletResponse resp) throws IOException {
   
        //获取请求信息
        String deptNo =  req.getParameter("deptNo");
        String dname = req.getParameter("dname");
        String loc = req.getParameter("loc");
        dept d = new dept(deptNo,dname,loc);
        //处理请求信息
            //获取service层对象
            int index = ds.DeptInsertService(deptNo,dname,loc);

        //处理响应信息
            if(index>0){
   
                //获取session对象
                HttpSession session= req.getSession();
                session.setAttribute("insert"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值