使用JSP+Structs2+JDBC实现用户登录
1、下载Struts2
去官网http://struts.apache.org/download.cgi 下载Struts 2.3.34 Full Distribution
解压缩后 apps文件夹中.war可以再次解压缩,就是示例程序,挺好使的。之后要写的xml之类的文件可以来这里找模板
在lib文件夹中找到这些jar需要复制到自己网站文件夹WebContent/WEB-INF/lib下
2、修改web.xml
添加 <!-- 添加核心控制器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- 拦截所有请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、login.jsp登录页面
WebContent/login.jsp
<form name="loginform" action="login.action" method="post">
<table>
<tr>
<td width="100">用户名:</td>
<td width="250"><input name="userName" type="text"></td>
</tr>
<tr>
<td width="100">密 码:</td>
<td width="250"><input name="password" type="password"></td>
</tr>
<tr>
<td colspan="2"><input type="radio" name="radiobutton" value="radiobutton" />请保存我这次的登录信息</td>
</tr>
<tr>
<td><input type="submit" value="登录" /></td>
</tr>
</table>
</form>
form的action是 login.action
login是action的名字
4、开发业务控制器Action
在src下建action包下建LoginAction类,继承ActionSupport
查询数据库,返回结果success 或者 input
package action;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.opensymphony.xwork2.ActionSupport;
import java.sql.*;;
public class LoginAction_fy extends ActionSupport {
private String userName;
private String 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;
}
public String execute() throws Exception{
java.sql.Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String usr = this.getUserName();
String pwd = this.getPassword();
String back = null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/struts_fy","root","123456");
String sql = "select * from user_info where userName ='" +userName+"' and password='"+password+"'";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()){
back = "success";
}else{
back = "input";
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(null!=rs){
rs.close();
}
if(null!=pstmt){
pstmt.close();
}
if(null!=conn){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
return back;
}
}
5、配置Struts.xml
在src下建struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="Struts2_fy" namespace="/" extends="struts-default">
<action name = "login" class="action.LoginAction_fy">
<result name="success">
/index.jsp
</result>
<result name="input">
/login.jsp
</result>
</action>
</package>
</struts>
就可
框架 = 可重复使用的东西
所以就把功能全部拆开了
web.xml截取用户请求,分析jsp的请求,LoginAction查询数据库进行比对用户用户名密码返回结果的方法,struts.xml让Struts2识别这个LoginAction