首页 / 知识
全栈开发那些事
2023-04-11 16:36:00

首先,我们要创建一个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());
}
}
|
最新内容
相关内容
python如何调用另一个文件夹中的内
python如何调用另一个文件夹中的内容?,系统,培训,文件,模块,内容,路径,函数,所在,前缀,语句,python中调用另外一个文件夹中的内容:1、同一文件python中怎么对一个数进行因式分解
python中怎么对一个数进行因式分解?,代码,培训,因式分解,因数,个数,最小,整数,数组,假定,分解,1、Python因式分解代码:importtime#对一个数进python如何创建空数组?
python如何创建空数组?,数据,培训,数组,形状,列表,对象,参数,方式,嵌套,初始化,python创建空数组的三种方式:1、numpy指定形状为0实际上,emptyPython慢的重要原因
Python慢的重要原因,信息,培训,语言,编译器,整数,操作,程序,解释性,速度,原因,1、python是动态性语言不是静态性语言在python程序执行的时候,python如何获取字符串最后一个字符
python如何获取字符串最后一个字符?,培训,字符串,方括号,字符,方法,引号,变量,数据类型,结尾,分配,python获取字符串最后一个字符的方法:字符python字符串不要最后字符怎么做?
python字符串不要最后字符怎么做?,培训,字符串,字符,末尾,空格,方法,示例,语法,以上,结果,python中可以使用rstrip()方法删除string字符串末python为什么不适合web开发
python为什么不适合web开发,平台,培训,一致,环境,代码,技术,业务,性能,虚拟机,进程,python不适合web开发的原因:1、性能堪忧。写个httpserverpython和php学哪个做web开发好
python和php学哪个做web开发好,数据,较大,技术,培训,代码,市场,人工智能,行业,份额,网站,不少打算学编程的学生,想从事web开发行业,但是对于webPython可以开发前端吗?
Python可以开发前端吗?,代码,管理,设备,网站,软件,培训,工具,服务,框架,前端,python是可以开发网页的,比如Django和Flask等基于Python的Web框安装Python需要JDK吗
安装Python需要JDK吗,百度,设备,软件,标准,平台,培训,工具,系统,环境,产品,不需要。Python是一门编程语言,JDK是Java编程语言的软件开发工具包Python如何创建对象,有哪些方法
Python如何创建对象,有哪些方法,培训,对象,方法,内容,函数,属性,所在,以上,以下,功能,以下介绍Python创建对象的9种方法。classPoint:def__inipython如何导入需要的库
python如何导入需要的库,模块,代码,培训,成员,别名,前缀,程序,语句,上面,变量,python使用import导入模块,语法主要有以下两种:import模块名1[as