package com.jsict.action;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.jws.soap.SOAPBinding.Use;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.jsict.entity.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class UserAction extends ActionSupport implements ModelDriven<User> {
private User user=new User();
public String login() {
boolean is=false;
try {
is = isExist(user.getUsername(), user.getPassword());
} catch (Exception e) {
// TODO: handle exception
System.out.println("error");
}
if (is) {
return "login";
} else {
return "unlogin";
}
}
public String register() {
if (user.getSex().equals("1")) {
user.setSex("男");
} else {
user.setSex("女");
}
Connection connection = null;
Statement stm = null;
PreparedStatement pst = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8", "root", "root");
stm = connection.createStatement();
pst = connection.prepareStatement("INSERT INTO user (username,password,email,tel,address,age,sex) VALUES(?,?,?,?,?,?,?)");
pst.setString(1, user.getUsername());
pst.setString(2, user.getPassword());
pst.setString(3, user.getEmail());
pst.setString(4, user.getTel());
pst.setString(5, user.getAddress());
pst.setString(6, user.getAge());
pst.setString(7, user.getSex());
pst.execute();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
stm.close();
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "register";
}
private boolean isExist(String name,String pwd) throws Exception{
Connection connection = null;
PreparedStatement statement = null;
ResultSet rs = null;
//1.加载JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
//2.与数据库建立连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8", "root", "root");
//3.创建Statement或PreparedStatement对象
statement = connection.prepareStatement("select * from user where username=? and password=?");
statement.setString(1, name);
statement.setString(2, pwd);
rs = statement.executeQuery();
user.setUsername(null);
user.setPassword(null);
System.out.println(rs);
if(rs.next()) {
user.setId(rs.getString(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(3));
user.setEmail(rs.getString(4));
user.setTel(rs.getString(5));
user.setAddress(rs.getString(6));
user.setAge(rs.getString(7));
user.setSex(rs.getString(8));
System.out.println(user);
}
rs.close();
statement.close();
connection.close();
if(name.equals(user.getUsername()))
{return true;}
return false;
}
@Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
}
【JSP+Struts2 注册登录入门 demo】是一个典型的Web应用开发实例,它结合了Java Server Pages(JSP)和Struts2框架,用于实现用户注册和登录功能。Struts2是一个强大的MVC(Model-View-Controller)框架,它简化了Java Web应用程序的开发过程,提供了更规范的架构和更好的控制流程。 在该入门示例中,开发者使用MySQL作为后台数据库,创建了一个名为`test`的数据库,其中包含一个用户表`user`。表`user`的字段与Java类`User`中的字段相对应,可能包括用户名、密码等必要信息。此外,`user`表还有一个自增的`id`字段,通常作为主键,用于唯一标识每个用户记录。 1. **JSP**:JSP是Java Web开发中用于生成动态网页的技术。在这个例子中,JSP文件负责展示注册和登录的HTML表单,以及处理用户交互,如提交表单数据。例如,`登录页面.png`和`注册页面.png`可能对应于实际的JSP文件,用于显示用户界面。 2. **Struts2**:Struts2框架管理着Web应用的业务逻辑和数据流。它接收JSP提交的请求,通过Action类处理数据,然后返回结果到视图。例如,注册和登录操作可能对应两个不同的Action,分别处理用户注册和登录的请求。 3. **数据库连接**:为了与MySQL通信,开发人员会使用JDBC(Java Database Connectivity)来建立数据库连接。在配置文件(如struts.xml或web.xml)中,会设置数据源,包括数据库URL、用户名(root)、密码(root)等信息。 4. **表结构**:`user`表的结构反映了用户数据的存储方式。自增的`id`字段是数据库自动递增的,确保每个用户都有唯一的标识。其他字段,如`username`和`password`,可能与`User`类的属性匹配,以便在Java代码中进行操作。 5. **注册和登录逻辑**:注册过程可能涉及到验证用户输入,如检查用户名是否已存在,以及密码是否满足复杂性要求。这可能通过Struts2的拦截器实现,如`注册校验.png`所示。登录过程则会比对用户输入的用户名和密码与数据库中的记录,如果匹配,则允许用户登录,否则显示错误信息,如`登录失败.png`和`登录成功.png`。 6. **项目结构**:`.classpath`和`.project`是Eclipse或类似的IDE生成的项目配置文件,用于定义项目依赖和构建路径。`.settings`目录包含了项目的特定配置。`src`目录存放Java源代码,包括Action类和其他业务逻辑。`build`目录则可能包含编译后的类文件和打包的Web应用文件。 这个入门demo为初学者提供了一个完整的流程,涵盖了从用户界面设计、后端处理到数据库操作的各个环节,是学习JSP和Struts2整合开发Web应用的好起点。通过深入理解和实践这个示例,开发者可以更好地掌握Web应用开发的基本技术和流程。
















































































- 1

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整

- 粉丝: 1
- 资源: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- (源码)基于CH557增强型E8051内核的嵌入式系统项目.zip
- 袁新燕-计算机外设与接口技术 配书资源
- 基于Matlab的蚁群算法求解多配送中心车辆调度问题(MDCVRP)
- (源码)基于C语言和Lua脚本的嵌入式脚本引擎示例项目.zip
- exercises_answers-计算机课后习题资源
- ct2016-电子硬件课程设计资源
- 张晨曦-计算机系统结构 配书资源
- SearchEngines-计算机课程设计资源
- 计算机二级-计算机二级资源
- C# 3C运动控制框架解析:半导体&新能源产线专用,含权限管理、硬件适配与MES对接
- (源码)基于Vue的RTMP视频流监控系统.zip
- 张景峰-ASP程序设计(第2版) 配书资源
- 等离子体模拟中氩灯放电过程的COMSOL与Python实现及其可视化
- (源码)基于C++的映射机器人控制平台.zip
- TI-Analysis-软考-网络工程师资源
- 张松-现代教育技术 配书资源


