class action extends mysql{_java Action 请求封装(二)

这篇博客介绍了一个名为ActionValues的类,它继承自HashMap,用于封装并自动从对象属性、HttpServletRequest中解析参数,过滤Spring配置。它简化了HTTP请求数据的处理,尤其适合在Action初始化时使用。
摘要由CSDN通过智能技术生成

在Action初始化的时间引入ActionValues,并把ActionValues继承HashMap,ActionValues如果传递为对象会自动通过mysql拿到当前对象实体名称,然后根据实体的名称来当Key封装value值,如果没有参数默认是传递request,然后自动解析字符串存入map,并会过滤spring等一些配制文件的参数数据。

/**

* ActionValues数据封装

* @author zhouguohui

*/

public class ActionValues extends HashMap{

public ActionValues(){

super();

}

public ActionValues(Object obj){

String[] fieldNames=ModelUtils.getFieldNames(obj.getClass());

try{

for(String fieldName:fieldNames){

this.put(fieldName,BeanUtils.getProperty(obj, fieldName)==null?"":BeanUtils.getProperty(obj, fieldName));

}

}catch(Exception e){

e.printStackTrace();

}

}

public ActionValues(Map values){

this.putAll(values);

}

@SuppressWarnings("unchecked")

public ActionValues(HttpServletRequest request){

String name=null;

Enumeration paramNames=request.getParameterNames();

Enumeration attrNames=request.getAttributeNames();

while(paramNames.hasMoreElements()){

name=paramNames.nextElement();

if(name.startsWith("org.springframework")||name.equals("characterEncodingFilter.FILTERED")||name.equals("shiroFilter.FILTERED")||name.equals("roles.FILTERED")){//过滤spring参数

continue;

}

if(request.getParameterValues(name).length>1){

String[] values=request.getParameterValues(name);

for(String v:values){

if(StrUtils.isNotEmpty(v)){

put(name,v);

}

}

}else{

if(null!=request.getParameter(name)&&StrUtils.isNotEmpty(String.valueOf(request.getParameter(name)))){

put(name, request.getParameter(name));

}

}

}

while(attrNames.hasMoreElements()){

name=attrNames.nextElement();

if(name.startsWith("org.springframework")||name.equals("characterEncodingFilter.FILTERED")||name.equals("shiroFilter.FILTERED")||name.equals("roles.FILTERED")){//过滤spring参数

continue;

}

if(null!=request.getAttribute(name)){

put(name,request.getAttribute(name));

}

}

}

@Deprecated

public void addValues(Object obj){

String[] fieldNames=ModelUtils.getFieldNames(obj.getClass());

try{

for(String fieldName:fieldNames){

if(null!=BeanUtils.getProperty(obj, fieldName)&&!"".equals(BeanUtils.getProperty(obj, fieldName).trim())){

this.put(fieldName,BeanUtils.getProperty(obj, fieldName));

}

}

}catch(Exception e){

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
好的,我可以为您提供一个简单的 MVC 登录实例(JSP+JavaBean+Servlet+MySQL),包括 User、UserDao、UserController 和 login.jsp。请注意,这里的代码只是一个示例,需要根据您的具体需求进行调整。 首先,我们需要创建一个 User 类,用于保存用户信息: ```java public class User { private String username; private String password; public User(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ``` 然后,我们需要创建一个 UserDao 类,用于处理与用户相关的数据库操作: ```java public class UserDao { private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; private static final String DB_URL = "jdbc:mysql://localhost:3306/mydb"; private static final String USER = "root"; private static final String PASS = "root"; public boolean isValid(User user) { Connection conn = null; PreparedStatement stmt = null; boolean isValid = false; try { Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL, USER, PASS); String sql = "SELECT * FROM users WHERE username = ? AND password = ?"; stmt = conn.prepareStatement(sql); stmt.setString(1, user.getUsername()); stmt.setString(2, user.getPassword()); ResultSet rs = stmt.executeQuery(); isValid = rs.next(); } catch (SQLException | ClassNotFoundException e) { e.printStackTrace(); } finally { try { if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } return isValid; } } ``` 接下来,我们需要创建一个 UserController 类,用于处理与用户相关的业务逻辑: ```java @WebServlet("/login") public class UserController extends HttpServlet { private UserDao userDao; @Override public void init() throws ServletException { super.init(); userDao = new UserDao(); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); User user = new User(username, password); boolean isValid = userDao.isValid(user); if (isValid) { request.getSession().setAttribute("user", user); response.sendRedirect("home.jsp"); } else { request.setAttribute("error", "Invalid username or password"); request.getRequestDispatcher("login.jsp").forward(request, response); } } } ``` 最后,我们需要创建一个 login.jsp 页面,用于展示登录表单: ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <h1>Login</h1> <% String error = (String) request.getAttribute("error"); %> <% if (error != null) { %> <p><%= error %></p> <% } %> <form action="login" method="post"> <p> <label>Username:</label> <input type="text" name="username" required> </p> <p> <label>Password:</label> <input type="password" name="password" required> </p> <p> <button type="submit">Login</button> </p> </form> </body> </html> ``` 这就是一个简单的 MVC 登录实例,包括 User、UserDao、UserController 和 login.jsp。当用户在登录表单中输入用户名和密码后,系统会将其封装成一个 User 对象,然后通过 UserDao 进行数据库验证。如果验证通过,系统会将用户信息保存到 Session 中并跳转到 home.jsp 页面;否则,系统会返回登录表单并显示错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值