天天看點

登入系統-基于struts2的分層架構

1.涓?杞芥????Netbeans7.0??Struts2??浠訛??ㄥ伐????浠?宸蹭?杞?娣誨????浠惰????涓?瀹?瑁?struts2??浠躲??

2.?闆緩涓?涓?web椤圭??锛??ㄦ?ラ??涓?????truts2??椤癸??繪????Create example page????椤癸?

登入系統-基于struts2的分層架構

?

?ㄨ???ㄧ????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.??寤哄??炬??绀虹????缁???锛?

登入系統-基于struts2的分層架構

?

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

?

繼續閱讀