Java的SSH网站
1、框架
strusts2 + Hibernate + spring
2、图片
图1-1 网站结构
图1-2 java代码结构
3、源代码
3.1 UserAction.java
package com.xhu.action; import java.util.HashMap;
import java.util.Map; import javax.annotation.Resource; import net.sf.json.JSONObject;
import net.sf.json.JsonConfig; import org.apache.struts2.interceptor.SessionAware; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component; import com.opensymphony.xwork2.ActionSupport; import com.xhu.DTO.PwdDto;
import com.xhu.model.Place;
import com.xhu.model.User;
import com.xhu.model.UserType;
import com.xhu.model.PageResultSet;
import com.xhu.service.PlaceManager;
import com.xhu.service.UserManager;
import com.xhu.util.MD5; @Component("userAction")
@Scope("prototype")
public class UserAction extends ActionSupport implements SessionAware {
/**
*
*/
private static final long serialVersionUID = 2566144909692829328L;
/**
*
*/
private UserManager userManager;
private User user;
private String province;
private String city;
private String county;
private PlaceManager placeManager;
private final String NOCHOOSE = "--请选择--";
private static final int pageSize = 10; private int currentPage; // 接受传递的页码参数
private PageResultSet<User> pageResultSet;
private String keyWord; // 分页查询时的关键字 private Map<String, Object> session; private String prePage; // 登录前要访问的页面 // 返回的字符串提示信息
private String returnStr;
private String userPwd;// 密码 private String jsonStr;// 接受从视图传过来的json字符串
private long userId; // 用户的流水号 private int myPageSize = 5; // 从视图中传过来的pageSize, 默认值为5 /**
* 修改用户密码
*
* @return
*/
public String changePwd() {
PwdDto pwdDto = null;
int result = -1;
try {
JSONObject js = JSONObject.fromObject(jsonStr);
pwdDto = (PwdDto) JSONObject.toBean((JSONObject) js, PwdDto.class);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (pwdDto != null) {
try {
result = this.userManager.doChangePwd(pwdDto.getUserId(),
pwdDto.getOldPwd(), pwdDto.getNewPwd());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Map<String, String> myMap = new HashMap<String, String>();
myMap.put("changePwdResult", "" + result);
JSONObject js = JSONObject.fromObject(myMap);
this.returnStr = js.toString();
return SUCCESS;
} /**
* 显示新增用户
*
* @return
*/
public String ajaxNewFixed() {
try {
this.pageResultSet = this.userManager.newAddFixed(myPageSize,
this.currentPage);
Map<String, Object> myMap = new HashMap<String, Object>();
myMap.put("currentPage", ""
+ this.pageResultSet.getPageInfo().getCurrentPage());
myMap.put("totalPage", ""
+ this.pageResultSet.getPageInfo().getTotalPage());
myMap.put("list", this.pageResultSet.getList());
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[] { "cars" });
JSONObject js = JSONObject.fromObject(myMap, jsonConfig);
returnStr = js.toString();
// System.out.println("Info: userAction - ajaxFenyeQuery - returnStr:"
// + returnStr);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
} /**
* 显示用户信息
*
* @return
*/
public String show() {
try {
this.user = this.userManager.getUserById(userId);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
} public String personnalInfo() { String strUserId = (String) session.get("userId");
long myUserId = Long.parseLong(strUserId);
try {
this.user = this.userManager.getUserById(myUserId);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return SUCCESS;
} public String getPrePage() {
return prePage;
} public void setPrePage(String prePage) {
this.prePage = prePage;
} public String getJsonStr() {
return jsonStr;
} public void setJsonStr(String jsonStr) {
this.jsonStr = jsonStr;
} private boolean json2User() {
boolean b = false;
// json 反序列化
try {
JSONObject js = JSONObject.fromObject(jsonStr);
user = (User) JSONObject.toBean((JSONObject) js, User.class);
b = true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return b;
} public String getUserPwd() {
return userPwd;
} public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
} public String getReturnStr() {
return returnStr;
} public void setReturnStr(String returnStr) {
this.returnStr = returnStr;
} public UserAction() {
System.out.println("userAction create....");
} public UserManager getUserManager() {
return userManager;
} @Resource
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} /**
* 如果已经登录,则转入到添加用户界面 否则,转入到登录界面
*
* @return
*/
public String limit() {
return SUCCESS;
} /**
* 添加用户信息
*
* @return
*/
public String add() {
user.getUserTypeNo().setNo(2);
int result = userManager.add(user);
if (result == 1) {
return SUCCESS;
} else {
return ERROR;
}
} public String ajaxAdd() {
// --------提示信息
json2User();
UserType userType = new UserType();
userType.setName("普通用户");
userType.setNo(2);
user.setUserTypeNo(userType); int result = -1;
try {
result = userManager.add(user);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} Map<String, String> myMap = new HashMap<String, String>();
if (result == 1) {
// 添加用户成功
myMap.put("addUserFlag", "1");
} else {
// 添加用户不成功!
myMap.put("addUserFlag", "-1");
}
JSONObject js = JSONObject.fromObject(myMap);
this.returnStr = js.toString();
return SUCCESS;
} // 验证用户名是否唯一
public String ajaxVUserAccount() { User u = null;
try {
u = this.userManager.getUserById(userId);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Map<String, String> myMap = new HashMap<String, String>(); if (u == null) {
// 用户名验证通过
myMap.put("vUserAccountFlag", "1");
} else {
// 用户名验证不通过
myMap.put("vUserAccountFlag", "-1");
}
JSONObject js = JSONObject.fromObject(myMap);
this.returnStr = js.toString(); return SUCCESS;
} // 修改用户信息
public String ajaxUpdate() {
// ----提示信息
json2User(); Map<String, String> myMap = new HashMap<String, String>();
int result = -1;
try {
result = this.userManager.update(user.getId(), user);
result = 1;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
myMap.put("updateUserFlag", "" + result);
JSONObject js = JSONObject.fromObject(myMap);
this.returnStr = js.toString();
return SUCCESS;
} // 根据用户账号删除用户
public String ajaxDelete() {
Map<String, String> myMap = new HashMap<String, String>();
int result = -1;
try {
result = this.userManager.delete(userId);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
myMap.put("deleteUserFlag", "" + result);
JSONObject js = JSONObject.fromObject(myMap);
this.returnStr = js.toString();
return SUCCESS;
} public String getProvince() {
return province;
} public void setProvince(String province) {
this.province = province;
} public String getCity() {
return city;
} public void setCity(String city) {
this.city = city;
} public String getCounty() {
return county;
} public void setCounty(String county) {
this.county = county;
} public PlaceManager getPlaceManager() {
return placeManager;
} @Resource
public void setPlaceManager(PlaceManager placeManager) {
this.placeManager = placeManager;
} /**
* 界面上的地点与数据库的存储之间的转换
*
* @return int 地点编号
*/
public Place dealPlace() {
Place place = null;
if (province.equals(this.NOCHOOSE)) {
// 没有选择
place = null;
} else {
if (city.equals(this.NOCHOOSE)) {
// 选择了province
place = this.placeManager.getProvince(province);
} else {
if (county.equals(this.NOCHOOSE)) {
// 选择了province和city
place = this.placeManager.getCity(province, city);
} else {
place = this.placeManager.getCounty(province, city, county);
// 选择了province, city,county
}
}
}
return place;
} /**
* 对于用户的修改的处理
*
* @return
*/
public String updatecl() {
UserType userType = this.userManager.getUserTypeByName(user
.getUserTypeNo().getName());
user.setUserTypeNo(userType);
int result = this.userManager.updateByUserAccount(user.getAccount(),
user);
if (result == 1) {
return SUCCESS;
} else if (result == 0) {
return "nouser";
} else {
return ERROR;
}
} /**
* 转入update显示页面
*
* @return
*/
public String update() {
try {
this.user = this.userManager.getUserById(userId);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
} public int getCurrentPage() {
return currentPage;
} public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
} public PageResultSet<User> getPageResultSet() {
return pageResultSet;
} public void setPageResultSet(PageResultSet<User> pageResultSet) {
this.pageResultSet = pageResultSet;
} public String getKeyWord() {
return keyWord;
} public void setKeyWord(String keyWord) {
this.keyWord = keyWord;
} public String fenyeUser() {
this.pageResultSet = this.userManager.queryByPage(5, this.currentPage);
return SUCCESS;
} // ajax分页查询
public String ajaxQuery() {
try {
this.pageResultSet = this.userManager.mhQuery(keyWord, pageSize,
this.currentPage);
System.out.println(this.pageResultSet);
Map<String, Object> myMap = new HashMap<String, Object>();
myMap.put("currentPage", ""
+ this.pageResultSet.getPageInfo().getCurrentPage());
myMap.put("totalPage", ""
+ this.pageResultSet.getPageInfo().getTotalPage());
myMap.put("list", this.pageResultSet.getList());
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[] { "cars" });
JSONObject js = JSONObject.fromObject(myMap, jsonConfig);
returnStr = js.toString();
// System.out.println("Info: userAction - ajaxFenyeQuery - returnStr:"
// + returnStr);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
} /**
* 对于登录表单进行处理
*
* @return
*/
public String loginFixed() {
this.returnStr = "";
User u = this.userManager.getUserByAccount(user.getAccount());
if (u != null) {
// 用户存在
user.setPwd(MD5.getMD5(user.getPwd().getBytes()));
if (u.getPwd().equals(user.getPwd())) {
if (u.getUserTypeNo().getName().equals("管理员")) {
this.returnStr = "不是固定用户";
return "fail";
} else {
session.put("userId", "" + u.getId());
session.put("userAccount", u.getAccount());
session.put("userTypeName", u.getUserTypeNo().getName());
prePage = (String) session.get("prePage");
session.remove("prePage");
if (prePage == null) {
return "index";
}
return SUCCESS;
}
} else {
// 密码不正确
this.returnStr = "密码不正确";
return "fail";
}
} else {
// 用户不存在
this.returnStr = "用户不存在";
return "fail";
} } /**
* 对于登录表单进行处理
*
* @return
*/
public String loginAdmin() {
this.returnStr = "";
User u = this.userManager.getUserByAccount(user.getAccount());
if (u != null) {
// 用户存在
user.setPwd(MD5.getMD5(user.getPwd().getBytes()));
if (u.getPwd().equals(user.getPwd())) {
// System.out.println(">>loginCL>prePage:" + prePage);
if (!u.getUserTypeNo().getName().equals("管理员")) {
this.returnStr = "不是管理员用户";
return "fail";
} else {
// 用户登录成功
session.put("userId", "" + u.getId());
session.put("userAccount", u.getAccount());
session.put("userTypeName", u.getUserTypeNo().getName());
prePage = (String) session.get("prePage");
session.remove("prePage");
if (prePage == null) {
return "index";
}
return SUCCESS;
}
} else {
// 密码不正确
this.returnStr = "密码不正确";
return "fail";
}
} else {
// 用户不存在
this.returnStr = "用户不存在";
return "fail";
} } /**
* 用户退出
*
* @return
*/
public String logout() {
try {
session.clear();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS; } /**
* adjax方式用户退出
*
* @return
*/
public String ajaxLogout() { Map<String, String> myMap = new HashMap<String, String>();
try {
session.remove("userAccount");
session.remove("userTypeName");
myMap.put("logoutFlag", "1");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
myMap.put("logoutFlag", "-1");
}
JSONObject js = JSONObject.fromObject(myMap);
returnStr = js.toString();
System.out.println("userAccount-ajaxQuitUser-returnStr:" + returnStr);
return SUCCESS;
} public void setSession(Map<String, Object> session) {
// TODO Auto-generated method stub
this.session = session;
} public long getUserId() {
return userId;
} public void setUserId(long userId) {
this.userId = userId;
} @Override
public String toString() {
return "UserAction [currentPage=" + currentPage + ", jsonStr="
+ jsonStr + ", keyWord=" + keyWord + ", prePage=" + prePage
+ ", returnStr=" + returnStr + ", user=" + user + ", userId="
+ userId + "]";
} public int getMyPageSize() {
return myPageSize;
} public void setMyPageSize(int myPageSize) {
this.myPageSize = myPageSize;
} }
3.2 UserManagerImpl.java
package com.xhu.service.impl; import java.util.List; import javax.annotation.Resource;
import org.springframework.stereotype.Component; import com.xhu.dao.UserDao;
import com.xhu.model.PageInfo;
import com.xhu.model.PageResultSet;
import com.xhu.model.User;
import com.xhu.model.UserDetailInfo;
import com.xhu.model.UserType;
import com.xhu.service.UserManager;
import com.xhu.util.MD5; @Component("userManager")
public class UserManagerImpl implements UserManager {
private UserDao userDao; public UserDao getUserDao() {
return userDao;
} @Resource
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} /**
* 根据用户的账号,判断用户是否存在
*
* @param User
* user 用户的账号
* @return boolean 如果存在,则返回true, 否则返回false
* @author zhujinrong
*/
public boolean exists(String userAccount) {
return userDao.checkUserExistsWithName(userAccount);
} public int add(User user) {
user.setPwd(MD5.getMD5(user.getPwd().getBytes()));
return this.userDao.save(user);
} public void userDetailSaveOrUpdate(UserDetailInfo userDetailInfo) {
this.userDao.userDetailSaveOrUpdate(userDetailInfo);
} public int delete(long userId) {
return this.userDao.delete(userId);
} /**
* 修改用户信息
*
* @param user
* 用户信息
* @return void
* @author zhujinrong
*/
public int update(long userId, User user) {
return this.userDao.update(userId, user);
} /**
* 返回所有用户的信息
*
* @param void
* @return List<User> 用户列表
* @author zhujinrong
*/
public List<User> getAllUsers() {
// TODO Auto-generated method stub
return userDao.getAllusers();
} /**
* 根据用户流水号,返回用户信息
*
* @param int id 用户流水号
* @return User 返回用户信息
* @author zhujinrong
*/
public User getUserById(long id) throws Exception {
// TODO Auto-generated method stub
return (User) userDao.getUserById(id);
} /**
* 根据用户的账号,返回用户的信息
*
* @param String
* account 用户账号
* @return User 用户
* @author zhujinrong
*/
public User getUserByAccount(String account) {
// TODO Auto-generated method stub
return (User) userDao.getUserByAccount(account);
} public UserDetailInfo getUserDetailInfo(long userId) {
// TODO Auto-generated method stub
return this.userDao.getUserDetailInfo(userId);
} public int updateUserDetail(long userId, UserDetailInfo userDetailInfo) {
// TODO Auto-generated method stub
return this.userDao.updateUserDetail(userId, userDetailInfo);
} public int updateByUserAccount(String userAccount, User user) {
return this.userDao.updateByUserAccount(userAccount, user);
} public UserType getUserTypeByName(String userTypeName) {
// TODO Auto-generated method stub
return this.userDao.getUserTypeByName(userTypeName);
} // 分页获取记录值
public PageResultSet<User> queryByPage(int pageSize, int page) {
String hql = "from User"; // 查询HQL语句
String hql2 = "select count(*) " + hql;
int totalRow = this.userDao.queryRowCount(hql2); // 计算总记录个数
// System.out.println("totalRow:" + totalRow);
PageInfo pageinfo = new PageInfo(totalRow, pageSize, page);
// 获取该页的记录
List<User> list = this.userDao.queryByPage(hql, pageinfo
.getBeginIndex(), pageinfo.getPageSize());
PageResultSet<User> pageResultSet = new PageResultSet<User>();
pageResultSet.setList(list);
pageResultSet.setPageInfo(pageinfo);
return pageResultSet;
} public PageResultSet<User> mhQuery(String keyWord, int pageSize, int page) {
// TODO Auto-generated method stub
int totalRow = this.userDao.mhQueryCount(keyWord); // 计算总记录个数
// System.out.println("totalRow:" + totalRow);
PageInfo pageinfo = new PageInfo(totalRow, pageSize, page);
// 获取该页的记录
List<User> list = null;
if (totalRow > 0) {
list = this.userDao.mhQuery(keyWord, pageinfo.getBeginIndex(),
pageinfo.getPageSize());
}
PageResultSet<User> pageResultSet = new PageResultSet<User>();
pageResultSet.setList(list);
pageResultSet.setPageInfo(pageinfo);
return pageResultSet;
} public PageResultSet<User> newAddFixed(int pageSize, int page) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
int totalRow = this.userDao.newAddFixedCount(); // 计算总记录个数
// System.out.println("totalRow:" + totalRow);
PageInfo pageInfo = new PageInfo(totalRow, pageSize, page);
// 获取该页的记录
List<User> list = null;
if (totalRow > 0) {
list = this.userDao.newAddFixed(pageInfo.getBeginIndex(), pageInfo
.getPageSize());
}
PageResultSet<User> pageResultSet = new PageResultSet<User>();
pageResultSet.setList(list);
pageResultSet.setPageInfo(pageInfo);
return pageResultSet;
} public int doChangePwd(long userId, String oldPwd, String newPwd)
throws Exception {
// TODO Auto-generated method stub
newPwd = MD5.getMD5(newPwd.getBytes());
oldPwd = MD5.getMD5(oldPwd.getBytes());
return this.userDao.changePwd(userId, oldPwd, newPwd);
} }
3.3 UserManager.java
package com.xhu.service; import java.util.List; import com.xhu.model.PageResultSet;
import com.xhu.model.User;
import com.xhu.model.UserDetailInfo;
import com.xhu.model.UserType; public interface UserManager { public boolean exists(String userAccount); /**
* 添加用户信息
*
* @param user
* @return int -1: 发生异常; 1: 添加用户成功
*/
public int add(User user); /**
* 添加用户相信信息
*
* @param userDetailInfo
* @return void
* @author zhujinrong
*/
public void userDetailSaveOrUpdate(UserDetailInfo userDetailInfo); /**
* 根据用户流水号,获取用户的详细信息
*
* @param userId
* @return
* @author zhujinrong
*/
public UserDetailInfo getUserDetailInfo(long userId); /**
* 根据用户流水号,修改用户详细信息
*
* @param userId
* 用户流水号
* @param userDetailInfo
* 用户详细信息
* @return -1:发生异常; 0:用户不存在; 1:修改用户详细信息成功
*/
public int updateUserDetail(long userId, UserDetailInfo userDetailInfo); /**
* 根据用户账号,删除用户信息
*
* @param userAccount
* @return int -1: 出现异常,删除不成功 0:用户不存在 1:删除成功!
*/
public int delete(long userId); /**
* 根据用户流水号,修改用户信息
*
* @param userId
* 用户流水号
* @param user
* 用户信息
* @return -1 发生异常; 0 用户不存在; 1 修改成功
*/
public int update(long userId, User user); public List<User> getAllUsers(); public User getUserById(long id) throws Exception; public User getUserByAccount(String account); /**
* 根据用户流水号,修改用户信息
*
* @param userAccount
* string 用户账号
* @param user
* 要修改的用户信息
* @return -1:发生异常; 0: 用户不存在; 1:修改用户信息成功
*/
public int updateByUserAccount(String userAccount, User user); /**
* 根据用户类型的名称,返回用户类型对象
*
* @param userTypeName
* String 用户类型名称
* @return UserType 用户类型对象
*/
public UserType getUserTypeByName(String userTypeName); // 分页获取记录值
public PageResultSet<User> queryByPage(int pageSize, int page); /**
* 根据要查询的信息,进行模糊查询
*
* @param info
* 要查询的关键字
* @param pageSize
* 页大小
* @param page
* 要查询的页
* @return PageResultSet 页面信息和相关的数据
*/
public PageResultSet<User> mhQuery(String keyWord, int pageSize, int page); /**
* 新增固定用户
*
* @param keyWord
* @param pageSize
* @param page
* @return
*/
public PageResultSet<User> newAddFixed(int pageSize, int page); /**
* 根据userId, 将用户的密码改为newPwd
*
* @param userId
* @param oldPwd
* @param newPwd
* @return 1:密码修改成功 0:用户原始密码输入不正确, 修改密码不成功 -1:出错了
* @throws Exception
*/
public int doChangePwd(long userId, String oldPwd, String newPwd)
throws Exception; }
3.4 UserDaoImpl.java
package com.xhu.dao.impl; import java.util.List; import javax.annotation.Resource; import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Component;
import com.xhu.dao.UserDao;
import com.xhu.model.User;
import com.xhu.model.UserDetailInfo;
import com.xhu.model.UserType;
import com.xhu.util.MD5; @Component("userDao")
public class UserDaoImpl implements UserDao {
private HibernateTemplate hibernateTemplate; public int save(User user) {
// TODO Auto-generated method stub
int result = -1;
try {
hibernateTemplate.save(user);
result = 1;
} catch (DataAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
} public void userDetailSaveOrUpdate(UserDetailInfo userDetailInfo) {
this.hibernateTemplate.saveOrUpdate(userDetailInfo);
} @SuppressWarnings("finally")
public int delete(long userId) {
int result = -1;
try {
User user = this.hibernateTemplate.load(User.class, userId);
if (user == null) {
result = 0;
}
this.hibernateTemplate.delete(user);
result = 1;
} catch (DataAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("e.getMessage:" + e.getMessage().toString());
System.out.println("e.hashCode" + e.hashCode());
} finally {
return result;
}
} public int update(long userId, User user) {
int result = -1;
User pu = null;
try {
pu = this.getUserById(userId);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// System.out.println("userDaoImpl->update:pu:" + pu);
// System.out.println("userDaoImpl->update:user:" + user); if (pu == null) {
result = 0;
return result;
} if (user.getBussinessIntro() != null) {
pu.setBussinessIntro(user.getBussinessIntro());
} if (user.getCellphone() != null) {
pu.setCellphone(user.getCellphone());
} if (user.getUserTypeNo() != null) {
pu.setUserTypeNo(user.getUserTypeNo());
} if (user.getAddress() != null) {
pu.setAddress(user.getAddress());
} if (user.getPwd() != null && !user.getPwd().trim().equals("")) {
user.setPwd(MD5.getMD5(user.getPwd().getBytes()));
pu.setPwd(user.getPwd());
} if (user.getRealName() != null) {
pu.setRealName(user.getRealName());
} if (user.getSex() != null) {
pu.setSex(user.getSex());
} try {
this.hibernateTemplate.update(pu);
result = 1;
} catch (DataAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
} /**
* 根据用户的账号判断用户是否存在
*
* @param account
* 用户的账号
* @return boolean 根据用户的账号判断用户是否存在,如果存在则返回true, 否则返回false
* @author zhujinrong
*/
@SuppressWarnings("unchecked")
public boolean checkUserExistsWithName(String account) {
boolean b = false;
List<User> users = hibernateTemplate
.find("from User u where u.account='" + account + "'");
if (users != null && users.size() > 0) {
b = true;
}
return b;
} public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
} @Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
} /**
* @author zhujinrong
* @param
* @return List 返回用户信息列表
*/
@SuppressWarnings("unchecked")
public List<User> getAllusers() {
// TODO Auto-generated method stub
List<User> users = (List<User>) this.hibernateTemplate
.find("from User");
System.out.println("users.size=" + users.size());
return users; } /**
* @author zhujinrong 根据用户的流水号,查找用户信息并返回
* @param id
* 用户的流水号
* @return User 用户
*/
public User getUserById(long id) throws Exception {
// TODO Auto-generated method stub
User user = this.hibernateTemplate.get(User.class, id);
return user;
} /**
* @author zhujinrong 根据用户账号,查找用户并返回
* @param account
* 用户账号
* @return User 用户
*/
public User getUserByAccount(String account) {
// TODO Auto-generated method stub Session session = this.hibernateTemplate.getSessionFactory()
.getCurrentSession();
session.beginTransaction();
Query query = (Query) session.createQuery(
"from User u where u.account = :account").setString("account",
account);
User user = (User) query.uniqueResult();
session.getTransaction().commit();
return user;
} public UserDetailInfo getUserDetailInfo(long userId) {
// TODO Auto-generated method stub
Session session = this.hibernateTemplate.getSessionFactory()
.getCurrentSession();
session.beginTransaction();
Query query = (Query) session.createQuery(
"from UserDetailInfo udf where udf.user.id = :userId").setLong(
"userId", userId);
UserDetailInfo userDetailInfo = (UserDetailInfo) query.uniqueResult();
session.getTransaction().commit();
return userDetailInfo;
} public int updateUserDetail(long userId, UserDetailInfo userDetailInfo) {
// TODO Auto-generated method stub
int result = -1;
UserDetailInfo pudf = this.getUserDetailInfo(userId);
if (pudf == null) {
result = 0;
return result;
}
if (userDetailInfo.getBmzw() != null) {
pudf.setBmzw(userDetailInfo.getBmzw());
} if (userDetailInfo.getCompanyName() != null) {
pudf.setCompanyName(userDetailInfo.getCompanyName());
} if (userDetailInfo.getContactAddress() != null) {
pudf.setContactAddress(userDetailInfo.getContactAddress());
} if (userDetailInfo.getFax() != null) {
pudf.setFax(userDetailInfo.getFax());
} if (userDetailInfo.getGardenName() != null) {
pudf.setGardenName(userDetailInfo.getGardenName());
} if (userDetailInfo.getLandLine() != null) {
pudf.setLandLine(userDetailInfo.getLandLine());
} if (userDetailInfo.getMsn() != null) {
pudf.setMsn(userDetailInfo.getMsn());
} if (userDetailInfo.getPostCode() != null) {
pudf.setPostCode(userDetailInfo.getPostCode());
} if (userDetailInfo.getQq() != null) {
pudf.setQq(userDetailInfo.getQq());
} try {
this.hibernateTemplate.update(pudf);
result = 1;
} catch (DataAccessException e) {
// TODO Auto-generated catch block
result = -1;
e.printStackTrace();
}
return result;
} public int updateByUserAccount(String userAccount, User user) {
// TODO Auto-generated method stub
int result = -1;
User pu = this.getUserByAccount(userAccount);
if (pu == null) {
result = 0;
return result;
}
System.out.println("userDaoImpl->update:pu:" + pu);
System.out.println("userDaoImpl->update:user:" + user); if (pu == null) {
result = 0;
return result;
} if (user.getBussinessIntro() != null) {
pu.setBussinessIntro(user.getBussinessIntro());
} if (user.getCellphone() != null) {
pu.setCellphone(user.getCellphone());
} if (user.getUserTypeNo() != null) {
pu.setUserTypeNo(user.getUserTypeNo());
} if (user.getAddress() != null) {
pu.setAddress(user.getAddress());
} if (user.getPwd() != null) {
pu.setPwd(user.getPwd());
} if (user.getRealName() != null) {
pu.setRealName(user.getRealName());
} if (user.getSex() != null) {
pu.setSex(user.getSex());
} try {
this.hibernateTemplate.update(pu);
result = 1;
} catch (DataAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result; } public UserType getUserTypeByName(String userTypeName) {
// TODO Auto-generated method stub
Session session = this.hibernateTemplate.getSessionFactory()
.getCurrentSession();
session.beginTransaction();
Query query = (Query) session.createQuery(
"from UserType userType where userType.name=:userTypeName")
.setString("userTypeName", userTypeName);
UserType userType = (UserType) query.uniqueResult();
session.getTransaction().commit();
return userType;
} /*
* 分页查询显示
*
* @param hql查询的的hql语句
*
* @param beginIndex 查询记录的起始索引位置
*
* @param pageSize 一次查询记录个数
*
* @return List<Teacher>
*/
@SuppressWarnings("unchecked")
public List<User> queryByPage(String hql, int beginIndex, int pageSize) {
Session session = this.hibernateTemplate.getSessionFactory()
.getCurrentSession();
org.hibernate.Transaction transaction = null;
try {
transaction = session.beginTransaction();
Query query = session.createQuery(hql);
query.setFirstResult(beginIndex);
query.setMaxResults(pageSize);
List<User> list = query.list();
transaction.commit();
return list;
} catch (Exception e) {
if (null != transaction) {
transaction.rollback();
e.printStackTrace();
}
}
return null;
} // 查询指定HQL的结果记录总数
public int queryRowCount(final String hql) {
Session session = this.hibernateTemplate.getSessionFactory()
.getCurrentSession();
// System.out.println("queryRowCount->hql:" + hql);
long result = -1;
try {
session.beginTransaction();
Query query = session.createQuery(hql);
result = (Long) query.uniqueResult(); // 计算个数
// System.out.println("result=" + result);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
}
return (int) result;
} @SuppressWarnings("unchecked")
public List<User> mhQuery(String keyWord, int beginIndex, int pageSize) {
// TODO Auto-generated method stub
List<User> list = null;
keyWord = "%" + keyWord + "%";
try {
Session session = this.hibernateTemplate.getSessionFactory()
.getCurrentSession();
session.beginTransaction();
Query query = session.createQuery(
"from User user where user.account like :keyWord "
+ "or user.realName like :keyWord "
+ "or user.cellphone like :keyWord").setString(
"keyWord", keyWord).setString("keyWord", keyWord)
.setString("keyWord", keyWord); query.setFirstResult(beginIndex);
query.setMaxResults(pageSize);
list = query.list();
session.getTransaction().commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
} public int mhQueryCount(String keyWord) {
// TODO Auto-generated method stub Session session = this.hibernateTemplate.getSessionFactory()
.getCurrentSession();
// System.out.println("queryRowCount->hql:" + hql);
long result = -1;
keyWord = "%" + keyWord + "%";
System.out.println("Info: UserDaoImpl-mhQueryCount-keyWord:" + keyWord);
try {
session.beginTransaction();
Query query = session.createQuery(
"select count(*) from User user where user.account like :keyWord "
+ "or user.realName like :keyWord "
+ "or user.cellphone like :keyWord").setString(
"keyWord", keyWord).setString("keyWord", keyWord)
.setString("keyWord", keyWord);
result = (Long) query.uniqueResult(); // 计算个数
System.out.println("result=" + result);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
}
return (int) result;
} @SuppressWarnings("unchecked")
public List<User> newAddFixed(int beginIndex, int pageSize) {
// TODO Auto-generated method stub List<User> list = null;
try {
Session session = this.hibernateTemplate.getSessionFactory()
.getCurrentSession();
session.beginTransaction();
Query query = session
.createQuery(
"from User user where user.userTypeNo.name =:userTypeName order by user.addTime desc")
.setString("userTypeName", "固定用户"); query.setFirstResult(beginIndex);
query.setMaxResults(pageSize);
list = (List<User>) query.list();
session.getTransaction().commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
} public int newAddFixedCount() {
Session session = this.hibernateTemplate.getSessionFactory()
.getCurrentSession();
// System.out.println("queryRowCount->hql:" + hql);
long result = -1;
try {
session.beginTransaction();
Query query = session
.createQuery(
"select count(*) from User user where user.userTypeNo.name=:userTypeName")
.setString("userTypeName", "固定用户");
result = (Long) query.uniqueResult(); // 计算个数
System.out.println("result=" + result);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
}
return (int) result;
} public int changePwd(long userId, String oldPwd, String newPwd)
throws Exception {
// TODO Auto-generated method stub
int result = -1;
User user = this.hibernateTemplate.load(User.class, userId);
if (user.getPwd().equals(oldPwd)) {
user.setPwd(newPwd);
this.hibernateTemplate.update(user);
result = 1;
} else {
result = 0;
} return result;
}
}
3.5 UserDao.java
package com.xhu.dao; import java.util.List; import com.xhu.model.User;
import com.xhu.model.UserDetailInfo;
import com.xhu.model.UserType; public interface UserDao { /**
* 添加用户信息
*
* @param user
* @return int -1: 发生异常 1 添加用户成功
*/
public int save(User user); /**
* 删除用户信息
*
* @param user
* @return 1: 删除用户成功 0: 用户不存在 -1: exception
*/
public int delete(long userId); /**
* 根据用户流水号,修改用户信息
*
* @param userId
* @param user
* @return -1:发生异常; 0: 用户不存在; 1:修改用户信息成功
*/
public int update(long userId, User user); /**
* 根据用户流水号,修改用户信息
*
* @param userAccount
* string 用户账号
* @param user
* 要修改的用户信息
* @return -1:发生异常; 0: 用户不存在; 1:修改用户信息成功
*/
public int updateByUserAccount(String userAccount, User user); public boolean checkUserExistsWithName(String account); public List<User> getAllusers(); public User getUserById(long id) throws Exception; public User getUserByAccount(String Account); public void userDetailSaveOrUpdate(UserDetailInfo userDetailInfo); /**
* 根据用户流水号,获取用户的详细信息
*
* @param long userId 用户流水号
* @return UserDetailInfo 用户详细信息
*/
public UserDetailInfo getUserDetailInfo(long userId); /**
* 修改用户详细信息
*
* @param userId
* 用户流水号
* @param userDetailInfo
* 用户详细信息
* @return -1: 发生异常, 修改用户信息不成功; 0: 用户不存在, 修改用户详细信息不成功, 1:修改用户成功
* @author zhujinrong
*/
public int updateUserDetail(long userId, UserDetailInfo userDetailInfo); /**
* 根据用户类型的名称,返回用户类型对象
*
* @param userTypeName
* String 用户类型名称
* @return UserType 用户类型对象
*/
public UserType getUserTypeByName(String userTypeName); // 分页查询显示
public List<User> queryByPage(String hql, int beginIndex, int pageSize); // 查询的结果记录总数
public int queryRowCount(final String hql); // 模糊查询的分页显示
public List<User> mhQuery(String keyWord, int beginIndex, int pageSize); // 返回模糊查询的记录总数
public int mhQueryCount(String keyWord); /**
* 新增固定用户信息
*
* @param beginIndex
* @param pageSize
* @return
*/
public List<User> newAddFixed(int beginIndex, int pageSize); /**
* 新增固定用户的条数
*
* @return
*/
public int newAddFixedCount(); /**
* 根据userId, 将用户密码:oldPwd, 改为newPwd
*
* @param userId
* @param oldPwd
* @param newPwd
* @return 1: 密码修改成功 0: 原始密码错误 -1:出错了
*/
public int changePwd(long userId, String oldPwd, String newPwd)
throws Exception;
}
3.6 model层
(1) User.java
package com.xhu.model; import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set; import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType; /**
* @author zhujinrong
*
*/
@Entity
@Table(name = "t_user")
public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = -3429846500229553447L;
private long id;
private String account;
private String realName;
private String pwd;
private String cellphone;
private UserType userTypeNo;
private String address;
private String bussinessIntro;
private String sex;
private Date addTime = new Date();// 添加固定用户时间 private Set<Car> cars = new HashSet<Car>(); @Id
@GeneratedValue
public long getId() {
return id;
} public void setId(long id) {
this.id = id;
} public String getAccount() {
return account;
} public void setAccount(String account) {
this.account = account;
} public String getRealName() {
return realName;
} public void setRealName(String realName) {
this.realName = realName;
} public String getPwd() {
return pwd;
} public void setPwd(String pwd) {
this.pwd = pwd;
} public String getCellphone() {
return cellphone;
} public void setCellphone(String cellphone) {
this.cellphone = cellphone;
} @Temporal(TemporalType.TIMESTAMP)
@Column(updatable = false)
public Date getAddTime() {
return addTime;
} public void setAddTime(Date addTime) {
this.addTime = addTime;
} @ManyToOne
@JoinColumn(name = "userTypeNo")
public UserType getUserTypeNo() {
return userTypeNo;
} public void setUserTypeNo(UserType userTypeNo) {
this.userTypeNo = userTypeNo;
} public String getBussinessIntro() {
return bussinessIntro;
} public void setBussinessIntro(String bussinessIntro) {
this.bussinessIntro = bussinessIntro;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} @Override
public String toString() {
StringBuffer s = new StringBuffer();
s.append("[id:" + id);
s.append(", account:" + account);
s.append(", realName: " + this.realName);
s.append(", sex: " + this.sex);
s.append(", userTypeNo:" + userTypeNo);
s.append(", cellphone:" + this.cellphone);
s.append(", address: " + this.address);
s.append(", addTime: " + this.addTime);
s.append(", bussinessIntro: " + this.bussinessIntro + "]");
return s.toString();
} @OneToMany(mappedBy = "publisher", fetch = FetchType.LAZY)
public Set<Car> getCars() {
return cars;
} public void setCars(Set<Car> cars) {
this.cars = cars;
} }
(2) UserDetail.java
package com.xhu.model; import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table; @Entity
@Table(name = "t_userDetailInfo")
public class UserDetailInfo implements Serializable {
/**
*
*/
private static final long serialVersionUID = -9173252706639856987L;
private long id; // 用户详细信息表的流水号
private User user;// 所属用户的详细信息
private String companyName;// 公司名称
private String gardenName;// 所属园区
private String contactAddress; // 联系地址
private String postCode;// 邮政编码
private String bmzw;// 部门职务
private String landLine; // 固定电话
private String fax;// 传真号
private String qq;// qq号
private String msn;// msn号 @Id
@GeneratedValue
public long getId() {
return id;
} public void setId(long id) {
this.id = id;
} @ManyToOne
@JoinColumn(name = "userId")
public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} public String getCompanyName() {
return companyName;
} public void setCompanyName(String companyName) {
this.companyName = companyName;
} public String getGardenName() {
return gardenName;
} public void setGardenName(String gardenName) {
this.gardenName = gardenName;
} public String getContactAddress() {
return contactAddress;
} public void setContactAddress(String contactAddress) {
this.contactAddress = contactAddress;
} public String getPostCode() {
return postCode;
} public void setPostCode(String postCode) {
this.postCode = postCode;
} public String getBmzw() {
return bmzw;
} public void setBmzw(String bmzw) {
this.bmzw = bmzw;
} public String getLandLine() {
return landLine;
} public void setLandLine(String landLine) {
this.landLine = landLine;
} public String getFax() {
return fax;
} public void setFax(String fax) {
this.fax = fax;
} public String getQq() {
return qq;
} public void setQq(String qq) {
this.qq = qq;
} public String getMsn() {
return msn;
} public void setMsn(String msn) {
this.msn = msn;
} @Override
public String toString() {
StringBuffer s = new StringBuffer();
s.append("[流水号: " + this.id);
s.append(", 用户: " + this.user);
s.append(", 公司名称:" + this.companyName);
s.append(", 所属园区:" + this.gardenName);
s.append(", 联系地址: " + this.contactAddress);
s.append(", 部门职位:" + this.bmzw);
s.append(", 固定电话: " + this.landLine);
s.append(", 邮政编码: " + this.postCode);
s.append(", qq:" + this.qq);
s.append(", msn: " + this.msn);
s.append(", 传真:" + this.fax + "]");
return s.toString();
}
}
(3) UserType.java
package com.xhu.model; import java.io.Serializable; import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table; @Entity
@Table(name = "t_userType")
public class UserType implements Serializable {
/**
*
*/
private static final long serialVersionUID = -6519396509517785002L;
private int no;
private String name; @Id
public int getNo() {
return no;
} public void setNo(int no) {
this.no = no;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public String toString() {
StringBuffer s = new StringBuffer();
s.append("[no: " + this.no);
s.append(", name:" + this.name + "]");
return s.toString();
}
}
3.7 UserLoginInterceptor.java
package com.xhu.interceptor; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor; public class UserLoginInterceptor implements Interceptor { /**
*
*/
private static final long serialVersionUID = -1098857744351094612L; public void destroy() {
// TODO Auto-generated method stub
System.out.println("...userLoginInterceptor destory />");
} public void init() {
// TODO Auto-generated method stub
System.out.println("< userLoginInterceptor init....");
} public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
System.out.println(">>intercept.....");
ActionContext context = invocation.getInvocationContext(); // 获取session Map<String, Object> session = (Map<String, Object>) context
.getSession(); String userAccount = (String) session.get("userAccount"); // 用户还未登陆 if (userAccount == null) { // 获取HttpServletRequest对象 HttpServletRequest req = ServletActionContext.getRequest(); // 获取此请求的地址,请求地址包含application name,进行subString操作,去除application name String path = req.getRequestURI(); // 获得请求中的参数 String queryString = req.getQueryString(); // 预防空指针 if (queryString == null) { queryString = ""; } // 拼凑得到登陆之前的地址 String realPath = path + "?" + queryString; // 存入session,方便调用 session.put("prePage", realPath);
System.out.println("-----------请求地址realPath:" + realPath); if (realPath.startsWith("/wlphuo/admin/")) {
return "loginAdmin";
} else {
return "loginFixed";
} } // 用户已经登陆,放行
return invocation.invoke(); } }
3.8 配置文件
(1) beans.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd"> <context:annotation-config/>
<context:component-scan base-package="com.xhu"/>
<aop:aspectj-autoproxy />
<!--
-->
<!--
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=testdb2"/>
<property name="username" value="sa"/>
<property name="password" value="sa"/>
</bean>
--> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:jdbc.properties"/>
</bean> <!-- datasource -->
<bean id="dataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/> </bean> <!-- sessionFactory, hibernateconfig-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan">
<list>
<value>com.xhu.model</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
</props>
</property>
</bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean> <!-- enable the configuration of transactional behavior based on annotations -->
<tx:annotation-driven transaction-manager="txManager"/> <aop:config>
<aop:pointcut id="bussinessService"
expression="execution(public * com.xhu.service.*.*(..))" />
<aop:advisor pointcut-ref="bussinessService"
advice-ref="txAdvice" />
</aop:config> <tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="exists" read-only="true" />
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="do*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice> </beans>
(2) jdbc.properties
jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc\:sqlserver\://localhost\:1433;databaseName\=wlphuoD1
jdbc.username=sa
jdbc.password=123456
(3) log4j.properties
log4j.rootLogger=WARN,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
(4) 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>
<constant name="struts.i18n.encoding" value="GBK"/>
<constant name="struts.devMode" value="true" /> <package name="fixed" extends="json-default">
<interceptors>
<!-- 定义权限控制拦截器 -->
<interceptor name="userLogin" class="com.xhu.interceptor.UserLoginInterceptor" /> <!-- 定义一个包含权限控制的拦截器栈 -->
<interceptor-stack name="mydefault">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="userLogin" />
</interceptor-stack>
</interceptors> <!-- 定义默认拦截器 -->
<default-interceptor-ref name="mydefault" /> <!-- 定义全局处理结果 -->
<global-results>
<!-- 逻辑名为login的结果,映射到/login.jsp页面 -->
<result name="loginFixed">/login-fixed.jsp</result>
<result name="loginAdmin">/login-admin.jsp</result>
</global-results>
<action name="userf-*" class="userAction" method="{1}">
<result>/user/userf-{1}.jsp</result>
</action>
<!-- car受限页面 -->
<action name="carlimitf-*" class="carAction" method="limit">
<result>/car/carf-{1}.jsp</result>
</action> <!-- car处理页面 -->
<action name="carcl-*" class="carAction" method="{1}">
<result>/car/car-{1}.jsp</result>
</action> <!-- invoice受限页面 -->
<action name="invoicelimitf-*" class="invoiceAction" method="limit">
<result>/invoice/invoicef-{1}.jsp</result>
</action> <!-- invoice处理页面 -->
<action name="invoicecl-*" class="invoiceAction" method="{1}">
<result>/invoice/invoice-{1}.jsp</result>
</action> <!-- invoice表单提交页面 -->
<action name="invoicetj-*" class="invoiceAction" method="{1}">
<result >/invoice/invoice-{1}success.jsp?returnStr=${returnStr}</result>
<result name="fail">/invoice/invoice-add.jsp?returnStr=${returnStr}</result>
</action> <!-- 用户处理返回json -->
<action name="user" class="userAction">
<result type="json">
<param name="root">returnStr</param>
</result>
</action> <!-- 车辆处理返回json -->
<action name="car" class="carAction">
<result type="json">
<param name="root">returnStr</param>
</result>
</action>
<!-- 发货单处理返回json -->
<action name="invoice" class="invoiceAction">
<result type="json">
<param name="root">returnStr</param>
</result>
</action>
</package> <package name="admin" extends="json-default">
<interceptors>
<!-- 定义权限控制拦截器 -->
<interceptor name="userLogin" class="com.xhu.interceptor.UserLoginInterceptor" /> <!-- 定义一个包含权限控制的拦截器栈 -->
<interceptor-stack name="mydefault">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="userLogin" />
</interceptor-stack>
</interceptors> <!-- 定义默认拦截器 -->
<default-interceptor-ref name="mydefault" /> <!-- 定义全局处理结果 -->
<global-results>
<!-- 逻辑名为login的结果,映射到/login.jsp页面 -->
<result name="loginFixed">/login-fixed.jsp</result>
<result name="loginAdmin">/login-admin.jsp</result>
</global-results> <!-- user限制访问页面 -->
<action name="userlimit-*" class="userAction" method="limit">
<result>/user/user-{1}.jsp</result>
</action>
<action name="carlog-query" class="carLogAction" method="limit">
<result>/car/carlog-query.jsp</result>
</action> <action name="carlogcl-query" class="carLogAction" method="mhQuery">
<result>/car/carlog-query.jsp?</result>
</action> <!-- user处理页面 -->
<action name="usercl-*" class="userAction" method="{1}">
<result>/user/user-{1}.jsp</result>
</action> <!-- car限制访问页面 -->
<action name="carlimit-*" class="carAction" method="limit">
<result>/car/car-{1}.jsp</result>
</action> <!-- car处理页面 -->
<action name="carcl-*" class="carAction" method="{1}">
<result>/car/car-{1}.jsp</result>
</action> <!-- invoice受限页面 -->
<action name="invoicelimit-*" class="invoiceAction" method="limit">
<result>/invoice/invoice-{1}.jsp</result>
</action> <!-- invoice处理页面 -->
<action name="invoicecl-*" class="invoiceAction" method="{1}">
<result>/invoice/invoice-{1}.jsp</result>
</action> <!-- invoice表单提交页面 -->
<action name="invoicetj-*" class="invoiceAction" method="{1}">
<result >/invoice/invoice-{1}success.jsp?returnStr=${returnStr}</result>
<result name="fail">/invoice/invoice-add.jsp?returnStr=${returnStr}</result>
</action> <!-- 用户处理返回json -->
<action name="user" class="userAction">
<result type="json">
<param name="root">returnStr</param>
</result>
</action> <!-- 车辆处理返回json -->
<action name="car" class="carAction">
<result type="json">
<param name="root">returnStr</param>
</result>
</action>
<!-- 发货单处理返回json -->
<action name="invoice" class="invoiceAction">
<result type="json">
<param name="root">returnStr</param>
</result>
</action>
</package> <package name="guest" extends="json-default">
<action name="login-fixed" class="userAction" method="loginFixed">
<result type="redirectAction">${prePage}</result>
<result name="index">/index.jsp</result>
<result name="fail">/login-fixed.jsp?returnStr=${returnStr}</result>
</action> <action name="login-admin" class="userAction" method="loginAdmin">
<result type="redirectAction">${prePage}</result>
<result name="index">/index.jsp</result>
<result name="fail">/login-admin.jsp?returnStr=${returnStr}</result>
</action>
<action name="logout-fixed" class="userAction" method="logout">
<result>/index.jsp</result>
</action>
<action name="logout-admin" class="userAction" method="logout">
<result>/login-admin.jsp</result>
</action> <!-- 车辆处理返回json -->
<action name="car" class="carAction">
<result type="json">
<param name="root">returnStr</param>
</result>
</action> <!-- 用户处理返回json -->
<action name="user" class="userAction">
<result type="json">
<param name="root">returnStr</param>
</result>
</action> </package>
</struts>
(5) web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <!-- Bootstrap the root application context as usual using ContextLoaderListener -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
<!-- defalut:/WEB-INF/applicationContext.xml -->
</listener> <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
</context-param> <filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter> <filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<!--<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sf</param-value>
</init-param>
--></filter> <filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <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> </web-app>
3.9 jsp页面
(1) index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>物流配货网</title>
<base href="<%=basePath %>"/>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="expires" content="0"/>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"/>
<meta http-equiv="description" content="This is my page"/>
<jsp:include page="/header.jsp"></jsp:include><!-- 包含所需要的公共头文件 -->
<script src="js/index.js" type="text/javascript"></script>
<style type="text/css">
.table{
border-collapse:collapse;
border: 0px;
} .td{
height:24px;
border-bottom:1px dotted #B6CEFB;
/*border:1px solid #B6CEFB;*/
} .th
{
height:24px;
/*border:1px solid #B6CEFB;*/
} .shell{}
#div1
{
height:432px;
overflow:hidden;
}
</style> </head>
<body>
<jsp:include page="head.jsp"></jsp:include>
<div id="content" style="border: 1px solid #DDDDDD;">
<jsp:include page="/left-index.jsp"></jsp:include>
<div id="center" style="border-left: 1px solid #DDDDDD; width: 768px;">
<div >
<table width="100%">
<tr>
<td align="left" height="18px"><b>车辆信息</b></td>
<td align="right"><a href="car/carf-find.jsp"><b>更多>></b> </a></td>
</tr>
</table>
<table width="100%" bgcolor="#DOE3FC">
<tr>
<th height="24px">起始地点</th>
<th>到达地点</th>
<th>车牌号码</th>
<th>车辆类型</th>
<th>车辆长度</th>
<th>车辆载重</th>
<th>操作</th>
</tr>
</table>
<div class="shell">
<div id="div1">
<table id="tb_cars" width="100%" class="table"> </table>
</div>
</div>
</div> </div>
</div>
<jsp:include page="tail.jsp"></jsp:include>
</body>
<script>
var c,_=Function;
with(o=document.getElementById("div1")){ innerHTML+=innerHTML; onmouseover=_("c=1"); onmouseout=_("c=0");}
(F=_("if(#%27||!c)#++,#%=o.scrollHeight>>1;setTimeout(F,#%27?10:1500);".replace(/#/g,"o.scrollTop")))();
</script>
</html>
(2) head.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<%
String userAccount=(String)session.getAttribute("userAccount");
String userTypeName = (String)session.getAttribute("userTypeName");
if (userAccount == null){
userAccount = "";
} if(userTypeName == null){
userTypeName="";
}
%>
<table border="0" width="1024px"> <tr>
<td align="left">
<a href="index.jsp" style="text-decoration: none; color: blue;">物流配货网首页</a>
</td>
<td align="right">
欢迎您
<a href="fixed/userf-personnalInfo" style="text-decoration: none; color: blue;">
<span id="loginUserAccount"><%=userAccount %></span></a>
<%
if (userAccount.equals("")){
%>
<a href="login-fixed.jsp">登录</a> <%
} else {
%>
<a href="guest/logout-fixed">退出</a>
<%
}
%>
<input type="hidden" id="userTypeName" value="<%=userTypeName %>" />
</td>
</tr>
</table>
<div id="topimage">
<img alt="物流配货网" src="data:images/wlphuo.gif" align="left">
</div>
<%
if (userTypeName.equals("管理员")){
%>
<jsp:include page="menu-admin.jsp"></jsp:include> <%
}
else {
%>
<jsp:include page="menu.jsp"></jsp:include>
<%
}
%>
(3) left-index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<div id="left" style="width: 251px;">
<div style="border: 1px solid #CFDEF6; margin: 6px;">
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="background-image: url(oimages/mainnews_bg.gif); background-repeat: repeat-x;">
<tr>
<td align="left" height="28px">
<span style="color: blue;">联系我们</span>
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>
<br />
<br />
<br />
<font style="font-size: 18px; color: green;"> 全国客服热线: 8888-888888</font>
<br />
<br />
<br />
<br />
</td>
</tr>
</table>
</div>
<div style="border: 1px solid #CFDEF6; margin:6px;">
<!-- 使用工具表格 -->
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="background-image: url(oimages/mainnews_bg.gif); background-repeat: repeat-x;">
<tr>
<td height="24px">
<span class="btf">实用工具</span>
</td>
</tr>
</table>
<!--本站动态开始-->
<table width="100%" border="0" cellspacing="1" cellpadding="4">
<tr>
<td bgcolor="#FFFBEF">
<div align="center">
<a href="http://www.123cha.com/idcard/" target="_blank">身份证验号</a></div>
</td>
<td bgcolor="#FFFBEF">
<div align="center">
<a href="http://www.ip138.com:8080/search.asp" target="_blank">手机号验号</a></div>
</td>
</tr>
<tr>
<td bgcolor="#DOE3FC">
<div align="center">
<a href="http://www.jdcsww.com/tools/other/selmile.asp" target="_blank">里程数查询</a></div>
</td>
<td bgcolor="#DOE3FC">
<div align="center">
<a href="http://www.youjia114.com/" target="_blank">全国油价查询</a></div>
</td>
</tr>
<tr>
<td bgcolor="#FFFBEF">
<div align="center">
<a href="http://www.doc88.com/p-66318487172.html" target="_blank">货运车资料</a></div>
</td>
<td bgcolor="#FFFBEF">
<div align="center">
<a href="http://weather.news.sina.com.cn/" target="_blank">天气预报</a></div>
</td>
</tr>
<tr>
<td bgcolor="#DOE3FC">
<div align="center">
<a href="http://qq.ip138.com/train/index.htm" target="_blank">列车时刻表</a></div>
</td>
<td bgcolor="#DOE3FC">
<div align="center">
<a href="http://www.ip138.com/" target="_blank">ip地址查询</a></div>
</td>
</tr>
<tr>
<td bgcolor="#FFFBEF">
<div align="center">
<a href="http://www.bjjtgl.gov.cn/publish/portal0/tab65/" target="_blank">路况信息</a></div>
</td>
<td bgcolor="#FFFBEF">
<div align="center">
<a href="http://map.baidu.com/" target="_blank">电子地图</a></div>
</td>
</tr>
<tr>
<td bgcolor="#DOE3FC">
<div align="center">
<a href="http://www.one101.com/htm/qita/ditu-china.htm" target="_blank">公路交通图</a></div>
</td>
<td bgcolor="#DOE3FC">
<div align="center">
<a href="http://www.for68.com/new/2006/1/su4518113645111160026107-0.htm" target="_blank">
航空货运单</a></div>
</td>
</tr>
<tr>
<td bgcolor="#FFFBEF">
<div align="center">
<a href="http://www.jctrans.com/tool/zxrl.htm" target="_blank">电子日历</a></div>
</td>
<td bgcolor="#FFFBEF">
<div align="center">
<a href="http://www.crane88.com/nrfind.asp" target="_blank">国道查询</a></div>
</td>
</tr>
<tr>
<td bgcolor="#DOE3FC">
<div align="center">
<a href="http://jiqiao.jxedt.com/info/3709.htm" target="_blank">各类交通标志</a></div>
</td>
<td bgcolor="#DOE3FC">
<div align="center">
<a href="http://hi.baidu.com/lmx%C1%D6%C3%CE%CF%A6/blog/item/b4f54eefe44275e9cf1b3e14.html"
target="_blank">地方汽车牌照</a></div>
</td>
</tr>
<tr>
<td bgcolor="#FFFBEF">
<div align="center">
<a href="http://weizhang.592163.com/" target="_blank">违章记录查询</a></div>
</td>
<td bgcolor="#FFFBEF">
<div align="center">
<a href="http://www.jincao.com/fa/law18.htm" target="_blank">交通法规</a></div>
</td>
</tr>
</table>
</div>
<!-- 使用工具表格 -->
</div> <!-- left -->
(4) tail.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <div style="clear:both"></div>
<div id="tailBar"></div>
<div id="tail"><a href="#">关于我们</a> | <a href="#">服务条款</a> | <a href="#">法律声明</a> | <a href="#">联系我们</a> | <a href="#">友情链接</a><br />
物流配货网版权所有2014-2014 网址: www.logistics.com 备案号: 鲁ICP备08098373号<br />
客服热线:0888-88888888 全国免费电话: 888-888-8888 </div>
3.10 .classpath文件
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts2-json-plugin-2.2.3.jar" sourcepath="C:/Users/zhujinrong/.m2/repository/org/apache/struts/struts2-json-plugin/2.2.3/struts2-json-plugin-2.2.3-sources.jar"/>
<classpathentry kind="lib" path="E:/code-hibernate/wlphuoD1/WebRoot/WEB-INF/lib/json-lib.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/antlr-2.7.6.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aopalliance-1.0.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-3.3.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-commons-3.3.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-tree-3.3.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aspectj-1.7.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aspectjweaver-1.5.3.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cglib-nodep-2.1_3.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-beanutils.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-collections-3.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-dbcp.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-fileupload-1.2.2.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-io-2.0.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-lang-2.4.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-lang3-3.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-pool.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ejb3-persistence.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ezmorph-1.0.4.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/freemarker-2.3.19.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate-annotations.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate-commons-annotations.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate3.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/javassist-3.11.0.GA.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/json-lib.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jta-1.1.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/log4j.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ognl-3.0.5.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/slf4j-api-1.5.8.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aop-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aop-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aop-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aspects-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aspects-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aspects-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-beans-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-beans-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-beans-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-support-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-support-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context-support-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-core-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-core-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-core-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-expression-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-expression-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-expression-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-tomcat-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-tomcat-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-instrument-tomcat-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jdbc-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jdbc-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jdbc-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jms-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jms-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jms-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-orm-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-orm-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-orm-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-oxm-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-oxm-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-oxm-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-struts-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-struts-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-struts-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-test-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-test-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-test-3.2.0.RELEASE.jar" sourcepath="C:/Users/zhujinrong/.m2/repository/org/springframework/spring-test/3.2.0.RELEASE/spring-test-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-tx-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-tx-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-tx-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-web-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-web-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-web-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-portlet-3.2.0.RELEASE-javadoc.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-portlet-3.2.0.RELEASE-sources.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc-portlet-3.2.0.RELEASE.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts2-core-2.3.7.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/struts2-spring-plugin-2.3.7.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xwork-core-2.3.7.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cos.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/flexjson-2.0.jar"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_3_EM"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.hibernate.MYECLIPSE_HIBERNATE3_3_CORE"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/sqljdbc4.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/slf4j-log4j12-1.5.8.jar"/>
<classpathentry kind="lib" path="E:/03jar/sqljdbc4.jar"/>
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>
Java的SSH网站的更多相关文章
- java获取https网站证书,附带调用https:webservice接口
一.java 获取https网站证书: 1.创建一个java工程,新建InstallCert类,将以下代码复制进去 package com; import java.io.BufferedReader ...
- 我是怎么开发一个小型java在线学习网站的
2016/1/27 11:55:14 我是怎么开发一个小型java在线学习网站的 一直想做一个自己的网站(非博客),但是又不知道做什么内容的好,又一次看到了w3schools,就萌发了开发一个在线ja ...
- 文献综述八:基于JAVA的商品网站的研究
一.基本信息 标题:基于JAVA的商品网站的研究 时间:2015 出版源:信息技术 文件分类:对java语言的研究 二.研究背景 本文主要介绍了系统的分析,设计和开发的全部过程. 三.具体内容 文献的 ...
- 项目二:企业级java电商网站开发(服务端)
声明:项目源于网络,支持正版教程,学习使用,仅记录在此 项目介绍 企业级java电商网站开发(服务端),模块划分:用户管理,商品管理,商品品类管理,订单管理,订单详情管理,购物车管理,收货地址管理,支 ...
- java使用ssh连接Linux并执行命令
方式1:通过设置账号密码和链接地址 maven pom.xml配置: <dependency> <groupId>com.jcraft</groupId ...
- Java 实现 ssh命令 登录主机执行shell命令
Java 实现 ssh命令 登录主机执行shell命令 1.SSH命令 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SS ...
- 使用Java开发高性能网站需要关注的那些事儿
无论大型门户网站还是中小型垂直类型网站都会对稳定性.性能和可伸缩性有所追求.大型网站的技术经验分享值得我们去学习和借用,但落实到更具体的实践上并不是对所有网站可以适用,其他语言开发的网站我还不敢多说, ...
- Java开发高性能网站需要关注的事
转自:http://www.javabloger.com/java-development-concern-those-things/ 近期各家IT媒体举办的业内技术大会让很多网站都在披露自己的技术内 ...
- 使用Java开发高性能网站需要关注的那些事儿2
近期各家IT媒体举办的业内技术大会让很多网站都在披露自己的技术内幕与同行们分享,大到facebook,百度,小到刚起步的网站.facebook,百度之类的大型网站采用的技术和超凡的处理能力的确给人 ...
随机推荐
- JQ 知识点集合
数组与字符串间的转换 一.数组转字符串(将数组元素用某个字符连接成字符串) var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); ...
- IIS并发瓶颈线程数的限制
.NET线程池最大线程数的限制-记一次IIS并发瓶颈 https://www.cnblogs.com/7rhythm/p/9964543.html .NET ThreadPool 最大线程数的限制 I ...
- iOS中scrollview自动滚动的实现
http://bbs.csdn.net/topics/390347330 原问题是,我要展现给用户的内容放在scrollview中,让内容从上到底自动滚动,我最开始用的是DDAutoscrollvie ...
- github上对一些名词的理解(之如fork)
fork: Fork 的本义是 叉子(名词) . 比较自然的引申成 分叉(动词) ,就像上面叉子,从左到从右,一条线变成多条了. Git/GitHub 用户下面的图 来表达 Fork:分叉.克隆 出一 ...
- 文件上传 jqueryForm
关于formData方式ajax上传文件的方式在笔者随笔开发日记5-18中有描述,在此不做记录. 由于之前使用的是formData方式上传文件,但是在后期处理浏览器兼容问题的时候出现头痛的事情,for ...
- 转发 Java火焰图在Netflix的实践
为了分析不同软件或软件的不同版本使用CPU的情况,相关设计人员通常需要进行函数的堆栈性能分析.相比于定期采样获得数据的方式,利用定时中断来收集程序运行时的PC寄存器值.函数地址以及整个堆栈轨迹更加高效 ...
- Linux 准确查找结构体定义位置
例如:查找文件操作结构体 struct file_operations, 使用转移符 "\" $ grep struct\ file_operations\ { kernel/in ...
- Server Tomcat v9.0 Server at localhost failed to start.
最近老是出现这样的问题,在网上找了很多方法都不行,试着把Tomcat重新配置了一下就好了,事后找到一个博客,试了一下也可以使用
- SAX解析类:SaxHelper
public class SaxHelper extends DefaultHandler { private Person person; private ArrayList<Person&g ...
- socket编程之select()
int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout); 参数 ...