Tải bản đầy đủ (.pdf) (52 trang)

Bài 7: Lập trình web với struts 2_TS Nguyễn Mạnh Hùng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (803.61 KB, 52 trang )

Lập trình mạng
Lập trình web với Struts 2
Giảng viên: TS. Nguyễn Mạnh Hùng
Học viện Công nghệ Bưu chính Viễn thông (PTIT)
2
Nội dung


Giới thiệu về Struts 2

Lập trình web với JSP – Java - Tomcat

Bài tập
Struts 2
4
Java – JSP - Tomcat
DB
BeanDAO
Control
x.JSP doX.JSP
5
Ví dụ: login trên web
DB
entity.Userdao.UserDAO
Home.jsp doLogin.jsp UserHome.jsp
6
Struts2 với Eclipse (2)
Bước 1: Cài đặt môi trường JDK, tomcat và axis:
Giải nén tập tin jakarta-tomcat-4.0.6.zip tại C:\Webservice\jakarta-
tomcat-4.0.6
Giải nén tập tin xml-axis-beta1.zip tại C:\Webservice\xml-axis-beta1


Cài đặt JDK tại C:\Program Files\Java\jdk1.6.0_21
Copy thư mục axis (C:\Webservice\xml-axis-beta1\webapps\axis)
vào trong thư mục webapps (C:\Webservice\jakarta-tomcat-
4.0.6\webapps)
Copy tập tin xerces.jar (C:\Webservice\jakarta-tomcat-
4.0.6\common\lib\xerces.jar) vào trong thư mục lib
(C:\Webservice\jakarta-tomcat-4.0.6\webapps\axis\WEB-INF\lib)
7
Struts2 với Eclipse (2)
- New project → Dynamic web project
8
Struts2 với Eclipse (3)
- Chọn tên
- Click finish
9
Struts2 với Eclipse (4)
- Tạo các thư mục và các file tương ứng:
10
Struts2 với Eclipse (5)
- Add các file thư viện vào thư mục WEB-INF/lib:
11
MessageStore.java
package model;
public class MessageStore {
private String message;
public MessageStore() {
setMessage("Xin chao cac ban dang hoc Struts 2!");
}
public String getMessage() {
return message;

}
public void setMessage(String message) {
this.message = message;
}
}
12
HelloWorldAction.java
package control;
import model.MessageStore;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private MessageStore messageStore;
public String execute() throws Exception {
messageStore = new MessageStore() ;
return SUCCESS;
}
public MessageStore getMessageStore() {
return messageStore;
}
public void setMessageStore(MessageStore messageStore) {
this.messageStore = messageStore;
}
}
13
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="
xmlns:xsi="

xsi:schemaLocation="
/> <display-name>Struts Blank</display-name>
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
14
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
" /><struts>
<constant name="struts.devMode" value="true" />
<package name="basicstruts2" extends="struts-default">
<action name="index">
<result>/index.jsp</result>
</action>
<action name="hello" class="control.HelloWorldAction"
method="execute">
<result name="success">/HelloWorld.jsp</result>

</action>
</package>
</struts>
15
index.jsp (1)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
" /><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Basic Struts 2 Application - Welcome</title>
</head>
<body>
<h1>Welcome To Struts 2!</h1>
<p><a href="<s:url action='hello'/>">Hello World</a></p>
</body>
</html>
16
index.jsp (2)
17
Helloworld.jsp (1)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
" /><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Hello World!</title>
</head>
<body>
<h2><s:property value="messageStore.message" /></h2>
</body>
</html>
18
Helloworld.jsp (2)
Ví dụ 1: Login dùng struts 2
20
Tạo project
21
User.java
package model;
import java.io.Serializable;
public class User implements Serializable{
private static final long serialVersionUID = 1L;
private String username;
private String password;
public User(){
}
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;
}
}
22
UserDAO.java (1)
package control;
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 model.User;
public class UserDAO {
private Connection con = null;
private Statement st = null;
private ResultSet rs = null;
private String url = "jdbc:mysql://localhost:3306/hotelmanagement";
private String user = "root";
private String password = "12345678";

public UserDAO(){
try {
con = DriverManager.getConnection(url, user, password);
} catch (SQLException ex) {
ex.printStackTrace();
}
}
23

UserDAO.java (2)
public boolean checkLogin(User user){
boolean result = false;
try {
st = con.createStatement();
String sql= "SELECT * FROM tbluser
WHERE username = ? AND password = ?";
PreparedStatement prs = con.prepareStatement(sql);
prs.setString(1, user.getUsername());
prs.setString(2, user.getPassword());

rs = prs.executeQuery();
if (rs.next()) {
result = true;
}
} catch (SQLException ex) {
ex.printStackTrace();
}
return result;
}
}
24
LoginAction.java (1)
package control;
import model.User;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private static final long serialVersionUID = 2L;
private User userBean;


public String execute() throws Exception {
UserDAO ud = new UserDAO();
if (ud.checkLogin(userBean)) {
return "success";
} else {
addActionError(getText("error.login"));
return "input";
}
}
25
LoginAction.java (2)
public void validate(){
if ( userBean.getUsername().length() == 0 ){
addFieldError( "userBean.username",
"Username is required." );
}
if ( userBean.getPassword().length() == 0 ){
addFieldError( "userBean.password",
"Password is required." );
}
}
public User getUserBean() {
return userBean;
}
public void setUserBean(User userBean) {
this.userBean = userBean;
}
}

×