一、 目标:
较全面掌握使用struts2 开发 j2ee应用。
二、具体需求:
使用struts2 开发一个简单的 Web应用。该应用包括如下功能:
1. 主页面:以文字与图片的形式介绍软件学院,除此之外含有学生登录功能、学生注
册链接。
2. 注册页面:输入学生信息(用户名、密码、确认密码、姓名、学号、出生日期、电
子邮件等),校验信息的合法性,记录相关信息。 3. 文件上传页面:用于上传学生作业文件。 4. 页面之间应加上合理的导向连接。
三.网站大体概述
(1)首先设计主页面,运用图片与文字进行描述,进行先注册,然后在进行登录。如果用户名有重复,进行提示您已注册。如登录成功,即可进行文件上传,之后可进行下载。
四.详细设计及页面显示。
(1)登录: login.jsp
登录页面
页面显示如下:
LoginAction.Java:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl */
package com.example.struts.action;
import java.sql.ResultSet;
import action.DataBase;
import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport;
/** *
* @author frankwu * */
public class LoginAction extends ActionSupport {
public String execute() throws Exception {
DataBase db=new DataBase();
String sql=
if(username1==null){ } else{
return
username1=rs.getString(
// Action类公用私有变量,用来做页面导航标志 private static String FORWARD = null; //用户名属性
private String username; //密码属性
private String password; //取得用户名值
public String getUsername() { }
//设置用户名值
public void setUsername(String username) { }
//取得密码值
public String getPassword() { }
//设置密码值
public void setPassword(String password) { }
this.password = password; return password;
this.username = username; return username;
and password='
ActionContext.getContext().getSession().put(
public void validate() {
if (getUsername() == null || getUsername().trim().equals(
}
return
{
{
}
(2)注册:
RegisterAction.java: /*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl */
package action;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport; /** *
* @author frankwu * */
public class RegisterAction extends ActionSupport {
// 用户名属性
private String username;
// Action类公用私有变量,用来做页面导航标志 private static String FORWARD = null;
}
}
addFieldError(
}
if (getPassword() == null || getPassword().trim().equals(
addFieldError(
// 密码属性
private String password;
// 确认密码属性
private String repassword; // 生日属性
private Date birthday; // 手机号码属性
private String mobile; // 年龄属性
private int age; // 取得用户名值
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 getRepassword() { return repassword;
}
// 设置确认密码值
public void setRepassword(String repassword) {
this.repassword = repassword;
// 取得生日值
public Date getBirthday() { }
// 设置生日值
public void setBirthday(Date birthday) { }
// 取得手机号码值
public String getMobile() { }
// 设置手机号码值
public void setMobile(String mobile) { }
// 取得年龄值
public int getAge() { }
// 设置年龄值
public void setAge(int age) { }
// 执行注册方法
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest(); String username = request.getParameter(
this.mobile = mobile; return mobile;
this.birthday = birthday; return birthday;
private String reg(String username, String password, String
String birthday, String mobile, String age, DataBase db) {
repassword,
String sql=
return false;
private boolean usernameexist(String username) throws Exception {
DataBase db=new DataBase();
String sql=String.format(
if (db.execQuery(sql)>=1) { }
return true;
}
if(usernameexist(username) ){ }
return
return reg(username, password, repassword, birthday, mobile,
db);
}else {
//如果用户名存在然后返回错误网页 //
否则执行注册
age,
username);
('
'
}
db.input(sql); return
(3)文件上传:upload.jsp:
pageEncoding=
charset=gb2312
上传文件
enctype=
上传文件:
再次上传文件:
href=
(4)regerror.jsp
String path = request.getContextPath(); String basePath =
request.getScheme()+
My JSP 'regerror.jsp' starting page
温馨提示:该用户已经被注册,请用其他用户名。
(5)数据库连接:
public DataBase() throws Exception {
if(conn==null){
try {
Class.forName(
conn=DriverManager.getConnection(
}
} }
stmt = conn.createStatement(); e.printStackTrace(); e.printStackTrace();
oot
} catch (SQLException e) {
} catch (ClassNotFoundException e) {
(6)struts.xml:
class=
五.小结:
经过这次系统的制作,使我明白了真正的制作一个系统的步骤和方法。在制作的过程中,遇到的问题也是有的,在数据库连接的时候就出现了错误,经过使用断点逐步查询,最难最终得到解决。经过这次的操作,虽然不能说全部掌握,但是我想这可能是入门的开始。
一、 目标:
较全面掌握使用struts2 开发 j2ee应用。
二、具体需求:
使用struts2 开发一个简单的 Web应用。该应用包括如下功能:
1. 主页面:以文字与图片的形式介绍软件学院,除此之外含有学生登录功能、学生注
册链接。
2. 注册页面:输入学生信息(用户名、密码、确认密码、姓名、学号、出生日期、电
子邮件等),校验信息的合法性,记录相关信息。 3. 文件上传页面:用于上传学生作业文件。 4. 页面之间应加上合理的导向连接。
三.网站大体概述
(1)首先设计主页面,运用图片与文字进行描述,进行先注册,然后在进行登录。如果用户名有重复,进行提示您已注册。如登录成功,即可进行文件上传,之后可进行下载。
四.详细设计及页面显示。
(1)登录: login.jsp
登录页面
页面显示如下:
LoginAction.Java:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl */
package com.example.struts.action;
import java.sql.ResultSet;
import action.DataBase;
import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport;
/** *
* @author frankwu * */
public class LoginAction extends ActionSupport {
public String execute() throws Exception {
DataBase db=new DataBase();
String sql=
if(username1==null){ } else{
return
username1=rs.getString(
// Action类公用私有变量,用来做页面导航标志 private static String FORWARD = null; //用户名属性
private String username; //密码属性
private String password; //取得用户名值
public String getUsername() { }
//设置用户名值
public void setUsername(String username) { }
//取得密码值
public String getPassword() { }
//设置密码值
public void setPassword(String password) { }
this.password = password; return password;
this.username = username; return username;
and password='
ActionContext.getContext().getSession().put(
public void validate() {
if (getUsername() == null || getUsername().trim().equals(
}
return
{
{
}
(2)注册:
RegisterAction.java: /*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl */
package action;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport; /** *
* @author frankwu * */
public class RegisterAction extends ActionSupport {
// 用户名属性
private String username;
// Action类公用私有变量,用来做页面导航标志 private static String FORWARD = null;
}
}
addFieldError(
}
if (getPassword() == null || getPassword().trim().equals(
addFieldError(
// 密码属性
private String password;
// 确认密码属性
private String repassword; // 生日属性
private Date birthday; // 手机号码属性
private String mobile; // 年龄属性
private int age; // 取得用户名值
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 getRepassword() { return repassword;
}
// 设置确认密码值
public void setRepassword(String repassword) {
this.repassword = repassword;
// 取得生日值
public Date getBirthday() { }
// 设置生日值
public void setBirthday(Date birthday) { }
// 取得手机号码值
public String getMobile() { }
// 设置手机号码值
public void setMobile(String mobile) { }
// 取得年龄值
public int getAge() { }
// 设置年龄值
public void setAge(int age) { }
// 执行注册方法
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest(); String username = request.getParameter(
this.mobile = mobile; return mobile;
this.birthday = birthday; return birthday;
private String reg(String username, String password, String
String birthday, String mobile, String age, DataBase db) {
repassword,
String sql=
return false;
private boolean usernameexist(String username) throws Exception {
DataBase db=new DataBase();
String sql=String.format(
if (db.execQuery(sql)>=1) { }
return true;
}
if(usernameexist(username) ){ }
return
return reg(username, password, repassword, birthday, mobile,
db);
}else {
//如果用户名存在然后返回错误网页 //
否则执行注册
age,
username);
('
'
}
db.input(sql); return
(3)文件上传:upload.jsp:
pageEncoding=
charset=gb2312
上传文件
enctype=
上传文件:
再次上传文件:
href=
(4)regerror.jsp
String path = request.getContextPath(); String basePath =
request.getScheme()+
My JSP 'regerror.jsp' starting page
温馨提示:该用户已经被注册,请用其他用户名。
(5)数据库连接:
public DataBase() throws Exception {
if(conn==null){
try {
Class.forName(
conn=DriverManager.getConnection(
}
} }
stmt = conn.createStatement(); e.printStackTrace(); e.printStackTrace();
oot
} catch (SQLException e) {
} catch (ClassNotFoundException e) {
(6)struts.xml:
class=
五.小结:
经过这次系统的制作,使我明白了真正的制作一个系统的步骤和方法。在制作的过程中,遇到的问题也是有的,在数据库连接的时候就出现了错误,经过使用断点逐步查询,最难最终得到解决。经过这次的操作,虽然不能说全部掌握,但是我想这可能是入门的开始。