1.涓?杞芥????Netbeans7.0??Struts2??浠訛??ㄥ伐????浠?宸蹭?杞?娣誨????浠惰????涓?瀹?瑁?struts2??浠躲??
2.?闆緩涓?涓?web椤圭??锛??ㄦ?ラ??涓?????truts2??椤癸??繪????Create example page????椤癸?
?
?ㄨ???ㄧ????web.xml涓?锛?缁??轟?struts2杩?婊ゅ?ㄩ??缃?锛?榛?璁ゆ????????璇鋒?锛???\*??,
<filter>
??????? <filter-name>struts2</filter-name>??????? <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
??? </filter>
??? <filter-mapping>
??????? <filter-name>struts2</filter-name>
??????? <url-pattern>/*</url-pattern>
</filter-mapping>
?規??????????*.action??????*.jsp??,?沖??瀵?truts??jsp??浠舵????锛?
<filter>
??????? <filter-name>struts2</filter-name>
??????? <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
??? </filter>
??? <filter-mapping>
??????? <filter-name>struts2</filter-name>
??????? <url-pattern>*.action</url-pattern>???????
??? </filter-mapping>
??? <filter-mapping>
??????? <filter-name>struts2</filter-name>???????
??????? <url-pattern>*.jsp</url-pattern>
??? </filter-mapping>
?ㄨ???ㄧ??????struts.xml??浠訛?浣?浜?缂虹????涓?锛???锛????ュ?涓?浠g??锛?
<package name="book" extends="struts-default">
??????? <action name="UserAction" class="book.action.UserAction">
??????????? <result name="msg">/index.jsp</result>
??????? </action>
</package>
琛ㄧず?℃??缁?杩?struts2杩?婊ょ????涓衡??UserAction????action锛????ц???book.action.UserAction??绫葷?搴?锛??規??缁???杞?????index.jsp??椤甸????
3.??寤哄??炬??绀虹????缁???锛?
?
4.?ㄢ??bbok.common?????劇疆宸ュ?風被?ㄤ??版??搴?杩??ワ??ㄦ?ゆ坊??DB_Conn.java??浠訛?
package book.common;
?
import java.io.PrintWriter;
import java.sql.*;
?
public class DB_Conn {
??? private? String driverName="com.mysql.jdbc.Driver";? //椹卞?ㄧ?搴???
??? private? String userName="root";?????????????????? //?版??搴??ㄦ?峰??
??? private? String userPwd="123456";??????????????????????? //瀵???
??? private? String url="jdbc:mysql://localhost:3306/book";?? //杩??ュ??绗?覆
??? private? Connection conn=null;????????????????? //?版??搴?杩??ュ?矽薄
??? public Statement sm=null;?????????????????????? //?版??搴?璇??ュ?矽薄
??? private PrintWriter out = null;
???
??? // 寤虹???版??搴?杩???
??? public void ConnectDB(){
??? ?????? ?try {
??? ????????????? ?Class.forName(driverName).newInstance();
??????? ?????? conn=DriverManager.getConnection(url,userName,userPwd);? //?峰??版??搴?杩???
??????? ?????? ?sm=conn.createStatement();
???????? } catch(Exception e) {
??????? ?????? ?out.print("?版??搴?杩??ュけ璐?");
??? ?????? ?}
??? }
???
??? public void CloseDB(){
??? ?????? try {
???????????????????? if (sm != null) {
??????????????????????????? sm.close();
???????????????????? }
???????????????????? conn.close();
????????????? } catch (SQLException SqlE) {
???????????????????? out.print("?版??搴??抽??澶辮觸锛?");
????????????? }
???
?? }
}
5.????book.model???劇疆瀹?浣?绫夥??ㄦ?ゆ坊??user.java??浠訛?
?????? package book.model;
?
public class User {
?????? 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;
?????? }
??????
}
6.????book.idao???劇疆?版??璁塊???ュ?o?娣誨??IUserDao?ュ?f??浠訛?
package book.idao;
import book.model.User;
public interface IUserDao {
??? User fineOne(String userName,String userPassword);
}
7. ????book.dao???劇疆?版??璁塊??绫夥?娣誨??UserDao.java??浠訛?瀹???UserDao?ュ?o?瀹????版??璁塊??锛?
package book.dao;
?
import book.common.DB_Conn;
import book.model.User;
import book.idao.IUserDao;
import java.sql.ResultSet;
import java.sql.SQLException;
?
public class UserDao implements IUserDao{
??????
??? //??寤哄???ㄦ?版??搴?杩??ョ被瀵矽薄
??? DB_Conn db_conn=new DB_Conn();
??? //??杩??ㄦ?峰??绉拌?峰???ㄦ?蜂俊??
??? @Override
??? public User fineOne(String username, String password) {
?????? db_conn.ConnectDB();
?????? ResultSet rs = null;
?????? try {
??????????? String sql = "select * from admin where u_Name ='"
???????????????????? + username + "' and u_Pass='" + password + "'";
??????????? rs = db_conn.sm.executeQuery(sql);??????? // ?ц?sql璇???
??????????? User user = null;
??????????? if (rs.next()) {
??????????????? user = new User();?????????????????????
????????????? user.setUsername(username);
????????????? user.setPassword(rs.getString("u_Pass"));???????????????????????
????????????? return user;
??????????? }
??????????? return user;
??????? }catch (SQLException SqlE) {
??????????? return null;
??????? }catch (Exception E) {
??????????? return null;
?????? }finally {
??????????? // ?抽??杩??ワ????炬?版??搴?璧?婧?锛?
??????????? db_conn.CloseDB();
?????? }
??? }????
}
8.?ㄥ????book.iservice??涓??劇疆?版?????昏?璁塊???ュ?o??ㄦ?ゆ坊??IUserService.java?ュ?f??浠訛?
package book.iservice;
import book.model.User;
public interface IUserService {
??? User findUserByNameAndPassword(String userName,String userPassword);
}
9. ????book.service???劇疆?版???昏?璁塊??绫夥?娣誨??UserService.java??浠訛?瀹???UserService锛?璋???serDao绫葷?????斤?瀹???瀵規?版???昏?璁塊??锛?
package book.service;
import book.iservice.IUserService;
import book.model.User;
import book.idao.IUserDao;
import book.dao.UserDao;
public class UserService implements IUserService{
??? private IUserDao userDao=new UserDao();
??? @Override
??? public User findUserByNameAndPassword(String userName,String userPassword){
??????? return userDao.fineOne(userName, userPassword);
??? }???
}
10.?ㄢ??book.action????涓??劇疆action绫夥?浠ュ???闆?圭郴缁????у?訛??ㄦ?ゆ坊??UserAction.java??浠訛?璇?ction绫昏??ㄦ?版?????昏?璁塊??绫?serService瀹??闆?規?版??搴????ヨ????規???ヨ?㈢???????涓?????瀛?绗?覆锛?
package book.action;
import com.opensymphony.xwork2.ActionContext;
import book.iservice.IUserService;
import book.service.UserService;
import book.model.User;
public class UserAction {
??? private IUserService userService=new UserService();
??? private String userName;
??? private String userPassword;
??? private String msg;
??? public String execute()throws Exception{
??????? User user=userService.findUserByNameAndPassword(userName, userPassword);
??????? if(user!=null){
??? ????????msg="?誨?????锛?"+user.getUsername();
??????????? ActionContext.getContext().getSession().put("user",user);
??????? }else{
??????????? msg="?誨?澶辮觸锛?<a href=\"JavaScript:window.history.back()\">杩???</a>";
??????? }
??????? return "msg";
??? }
??? public void setUserName(String userName){
??????? this.userName=userName;
??? }
??? public void setUserPassword(String userPassword){
??????? this.userPassword=userPassword;
??? }
??? public String getMsg(){
??????? return msg;
??? }
}
11. ??寤哄?涓?涓や釜椤甸???
Login.jsp:
<%@ page pageEncoding="gb2312" %>
<%@ page contentType="text/html; charset=gb2312" %>
<% request.setCharacterEncoding("gb2312"); %>
<%@ page language="java" %>
<html>??
?????? ? <head><title>?誨?缃?椤?lt;/title></head>
?????? <body>
?????? <form method="POST" action="UserAction.action">
?
?????? <table? >
?????? ??? <tr>
?????? ????? <td width="890" align="left" colspan="2">
?????? ?????? <b><font size="5">绯葷??誨?</font></b>
?????? ??????? <hr>
?????? ????? </td>
?????? ??? </tr>
??????????? <% if (request.getAttribute("error") != null){ %>
?????? <tr>
????????????? <td width=100% align=center colspan=4 height=36>
????????????? ???? <font color=red><b><%=request.getAttribute("error")%></b></font>
????????????? </td>
?????? </tr>
?????? <%
???? }
?????? %>
?????? ??? <tr>
?????? ????? <td width="75" align="center">
?????? ??????? <p align="right">璐??鳳?</p>
?????? ????? </td>
?????? ????? <td width="809" align="center">
?????? ????? ??<p align="left">
?????? ????? ?? <input type="text" name="userName" size="20"></td>
?????? ??? </tr>
?????? ??? <tr>
?????? ????? <td width="75" align="center">
?????? ??????? <p align="right">瀵???锛?</p>
?????? ????? </td>
?????? ????? <td width="809" align="center">
?????? ??????? <p align="left">
?????? ??????? <input type="password" name="userPassword" size="20">
?????? ??????? <input type="submit" value="?誨?" name="loginButton"></td>
?????? ??? </tr>
?????? ? </table>
?????? </form>
?????? </body>
?????? </html>
?ㄨ?涓?椤甸??腑锛?涓??㈢??form??璁拌???ワ?
<form method="POST" action="UserAction.action">
琛ㄧず璇ラ〉?㈡??浜や?涓???涓猴?"UserAction"??action锛?娉ㄦ????struts.xml??浠朵腑??action??name?稿?瑰???
index.jsp:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
??? <head>
??????? <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
??????? <title>?劇ず淇℃??</title>
??? </head>
??? <body>
??????? <h1>Hello World!</h1>
??????? <div id="content">
??????????? <center>
??????????????? <br/><%=request.getAttribute("msg")%>
??????????? </center>
??????? </div>
??? </body>
</html>
璇ラ〉?㈢????璁拌???ワ?
<%=request.getAttribute("msg")%>
琛ㄧず?ユ?舵?ヨ??action??msg瀛?绗?覆??
12. ????椤圭??锛?骞惰?琛?http://localhost:8080/login/login.jsp
?