首先,我们要创建一个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());
}
}
|