全栈开发那些事

全栈开发那些事
     首先,我们要创建一个Java的web工程,具体的做法大家可以查看下面链接,有专门介绍如何创建的。在web工程中,有两个包,一个包是src,一个是web。我们首先应该在src下建立一个包,我把它命名为com,然后在com包下再建立六个包,分别是dao包,service包,pojo包,test包,utils包,webSrc包(我这里没有建立controller包)。我们还要在src包下建立一个properties,里面是进行数据库的连接。在web包中,本来就有一个web-inf包,我们在web包里还要建立几个包,当然了,这个可以根据个人习惯来,我是喜欢建立page包,static包。因为我在开发的时候没有使用到maven,因此我的所有jar包(依赖)都是自己导入的,导入的方法也在下面链接。然后,应该在web-inf下建立一个文件夹,然后名字是lib,里面放各种jar包,具体的jar包在这里。jar包资源​​​​​​   ​​​​​​java web 工程的创建以及lib中依赖如何引入
 
    然后,我讲一下com的包中,每个包的作用。在dao包中,我们会建立一个impl包和各种接口类,而impl包则是继承接口,来实现接口类里面的方法的。pojo包就是里面是具体的类,这里面类的变量都是与数据库息息相关的。service包中也是有impl包和接口类,在impl中需要调用dao包中的方法和service接口类的方法来实现 。test包顾名思义,它就是一个测试类。
 
public class JdbcUtilsTest {
 
    @Test
 
    public void TestJdbcUtils(){
 
        System.out.println(JdbcUtils.getConnection());
 
    }
 
}
 
在上面的代码中就是对数据库是否连接成功做一个测试。utils包就是一个大类的东西,里面我常常放置的是数据库的连接以及在接收到jsp传入到后端的数据进行数据类型的转化。webSrc包中就是与servlet有关的类了。(在web包中都是有关前端的,我就不给大家具体描述了)
 
        下面,就涉及到了我们具体开发的流程中了。大家想必已经知道了,首先,我们就是要连接我们的数据库,我用的是MySQL,数据库软件用的是SQLyog。在前面我提到了一个properties,我经常会这么命名,在这里,我们进行数据库连接的配置,
 
driverClassName=com.mysql.jdbc.Driver
 
url=jdbc:mysql://localhost:3306/book?characterEncoding=UTF-8
 
username=root
 
password=###
 
initialSize=5
 
maxActive=10
 
maxWait=3000
 
大家要注意,第二行的url中book是你要链接的数据库的名字,端口也是你自己配置的,后面的字符集是我自己加上的,因为要是不加的话,会导致你存入数据库的中文数据乱码,数据库的用户名和密码,这都是自己设定的,我用的是德鲁伊连接池,大家也可以用别的。
 
        接下来,我给大家举一个用户登录的例子。
 
大家看到了这里有一个学号的输入和密码的输入,那么大家肯定疑惑了,如何让前端输入的数据传到后端
 
name="CardId"
 
name="password"
 
大家需要在前端jsp页面中给学号和密码定义一个name,但以什么途径传过去,就是下面的的代码
 
action="loginServlet?action=login"
 
我们在action中定义类的名字以及要调用类中的哪个方法,
 
public class LoginServlet extends BaseServlet{
 
    private UserService userService = new UserServiceImpl();
 
    protected void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
        String CardId = req.getParameter("CardId");
 
        String password = req.getParameter("password");
 
        User loginUser = userService.login(new User(null,CardId,null,password,null));
 
        if(loginUser==null){
 
            req.setAttribute("msg","学号或密码错误");
 
            req.setAttribute("CardId",CardId);
 
            req.getRequestDispatcher("/pages/user/login.jsp")。forward(req, resp);
 
        }else if(userService.getStatus(CardId)。equals("true")){
 
            loginUser.setUname(userService.getName(CardId));
 
            req.getSession()。setAttribute("loginUser",loginUser);
 
            req.getRequestDispatcher("/pages/managerPages/first.jsp")。forward(req,resp);
 
        }else if(userService.getStatus(CardId)。equals("false")){
 
            loginUser.setUname(userService.getName(CardId));
 
            req.getSession()。setAttribute("loginUser",loginUser);
 
            req.getRequestDispatcher("/pages/studentPages/first.jsp")。forward(req,resp);
 
        }
 
    }
 
    protected void logout(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
        req.getSession()。invalidate();
 
        resp.sendRedirect(req.getContextPath());
 
    }
 
}

推荐阅读