当前位置:网站首页>记录:动态Web项目servlet访问数据库404错误之解决
记录:动态Web项目servlet访问数据库404错误之解决
2022-07-06 09:18:00 【非风之想】
动态Web项目servlet访问数据库404错误之解决
login.html
在login.html 在浏览器中显示的页面输入用户用和密码点击登录,根据action/Web/login转到Web项目下web.xml文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/Web/login" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录"><br>
</form>
</body>
</html>
web.xml
在xml文件中的servlet-mapping标签中的url-pattern标签中的/login,找到/login之后,根据上面的servlet-name标签中文本LoginServlet去找servlet标签中servlet-name标签中的相同文本LoginServlet,然后找到下面servlet-class标签中的文本login.LoginServlet,该文本表示要运行.java文件所在的路径 (所在的包)。
<servlet>
<description></description>
<display-name>LoginServlet</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>login.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
LoginServlet.java
根据xml中的路径(所在的包)来运行LoginServlet.java文件,从而操作数据库中的数据
package login;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import domain.User;
import utils.DataSourceUtils;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获得用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
//2.从数据库中验证该用户名和密码是否真缺
QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
String sql = "select * from user where username=? and password=?";
User user = null;
try {
user = runner.query(sql, new BeanHandler<User>(User.class), username,password);
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
//3.根据返回的结果给用户不同的显示信息
if (user!=null) {
//用户登录成功
response.getWriter().write(user.toString());
}else {
//用户登陆失败
response.getWriter().write("sorry your username or password is wriong!!!");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
所以web.xml 中的url-mapping文本/login中的login 必须与form标签的action=/Web/login中的login同名
边栏推荐
- Office提示您的许可证不是正版弹框解决
- (课设第一套)1-4 消息传递接口 (100 分)(模拟:线程)
- [Yu Yue education] guide business reference materials of Wuxi Vocational and Technical College of Commerce
- [offer18] delete the node of the linked list
- Compilation principle: preprocessing of source program and design and implementation of lexical analysis program (including code)
- KF UD分解之伪代码实现进阶篇【2】
- [Clickhouse kernel principle graphic explanation] about the collaborative work of partitioning, indexing, marking and compressed data
- Easy to use shortcut keys in idea
- Latex learning
- PR 2021 quick start tutorial, first understanding the Premiere Pro working interface
猜你喜欢
[algorithme] swordfinger offer2 golang question d'entrevue 2: addition binaire
[算法] 剑指offer2 golang 面试题6:排序数组中的两个数字之和
rtklib单点定位spp使用抗差估计遇到的问题及解决
[untitled]
FairyGUI循环列表
Detailed explanation of balanced binary tree is easy to understand
2021.11.10 compilation examination
FairyGUI按钮动效的混用
Office prompts that your license is not genuine pop-up box solution
FairyGUI条子家族(滚动条,滑动条,进度条)
随机推荐
【GNSS数据处理】赫尔默特(helmert)方差分量估计解析及代码实现
RTKLIB: demo5 b34f.1 vs b33
Office提示您的许可证不是正版弹框解决
服务未正常关闭导致端口被占用
341. Flatten nested list iterator
2021.11.10 compilation examination
[算法] 剑指offer2 golang 面试题5:单词长度的最大乘积
Detailed explanation of balanced binary tree is easy to understand
Database course design: college educational administration management system (including code)
FairyGUI条子家族(滚动条,滑动条,进度条)
idea中导包方法
Mysql database index
Guided package method in idea
[899] ordered queue
rtklib单点定位spp使用抗差估计遇到的问题及解决
(the first set of course design) 1-4 message passing interface (100 points) (simulation: thread)
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
[offer29] sorted circular linked list
Force buckle 1189 Maximum number of "balloons"
Special palindromes of daily practice of Blue Bridge Cup