Java的SSH网站

news/2024/5/20 12:31:35/文章来源:https://blog.csdn.net/weixin_30883311/article/details/96260326

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;}@Resourcepublic 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;}@Resourcepublic 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)) {// 选择了provinceplace = this.placeManager.getProvince(province);} else {if (county.equals(this.NOCHOOSE)) {// 选择了province和cityplace = 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 stubthis.session = session;}public long getUserId() {return userId;}public void setUserId(long userId) {this.userId = userId;}@Overridepublic 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;}}
View Code

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;}@Resourcepublic 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 stubreturn userDao.getAllusers();}/*** 根据用户流水号,返回用户信息* * @param int id 用户流水号* @return User 返回用户信息* @author zhujinrong*/public User getUserById(long id) throws Exception {// TODO Auto-generated method stubreturn (User) userDao.getUserById(id);}/*** 根据用户的账号,返回用户的信息* * @param String*            account 用户账号* @return User 用户* @author zhujinrong*/public User getUserByAccount(String account) {// TODO Auto-generated method stubreturn (User) userDao.getUserByAccount(account);}public UserDetailInfo getUserDetailInfo(long userId) {// TODO Auto-generated method stubreturn this.userDao.getUserDetailInfo(userId);}public int updateUserDetail(long userId, UserDetailInfo userDetailInfo) {// TODO Auto-generated method stubreturn 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 stubreturn 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 stubint 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 stubint 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 stubnewPwd = MD5.getMD5(newPwd.getBytes());oldPwd = MD5.getMD5(oldPwd.getBytes());return this.userDao.changePwd(userId, oldPwd, newPwd);}}
View Code

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;}
View Code

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 stubint 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;}@Resourcepublic void setHibernateTemplate(HibernateTemplate hibernateTemplate) {this.hibernateTemplate = hibernateTemplate;}/*** @author zhujinrong* @param* @return List 返回用户信息列表*/@SuppressWarnings("unchecked")public List<User> getAllusers() {// TODO Auto-generated method stubList<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 stubUser 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 stubSession 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 stubint 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 blockresult = -1;e.printStackTrace();}return result;}public int updateByUserAccount(String userAccount, User user) {// TODO Auto-generated method stubint 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 stubSession 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 stubList<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 stubint 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;}
}
View Code

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;
}
View Code

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@GeneratedValuepublic 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;}@Overridepublic 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;}}
View Code

(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@GeneratedValuepublic 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;}@Overridepublic 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();}
}
View Code

(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;@Idpublic 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;}@Overridepublic String toString() {StringBuffer s = new StringBuffer();s.append("[no: " + this.no);s.append(", name:" + this.name + "]");return s.toString();}
}
View Code

 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 stubSystem.out.println("...userLoginInterceptor destory />");}public void init() {// TODO Auto-generated method stubSystem.out.println("< userLoginInterceptor init....");}public String intercept(ActionInvocation invocation) throws Exception {// TODO Auto-generated method stubSystem.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();}}
View Code

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/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.2.xsdhttp://www.springframework.org/schema/txhttp://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>
View Code

(2) jdbc.properties

jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc\:sqlserver\://localhost\:1433;databaseName\=wlphuoD1
jdbc.username=sa
jdbc.password=123456
View Code

(3) log4j.properties

log4j.rootLogger=WARN,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
View Code

(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>
View Code

(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>
View Code

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>
View Code

(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">
欢迎您  &nbsp; &nbsp;
<a href="fixed/userf-personnalInfo" style="text-decoration: none; color: blue;">
<span id="loginUserAccount"><%=userAccount %></span></a>&nbsp;&nbsp;  
<%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="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>
<%}
%>
View Code

(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">&nbsp;<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 -->
View Code

(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>
View Code

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>
View Code

 

转载于:https://www.cnblogs.com/tianxue/p/4122179.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_728563.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

30个宏伟的酒厂和葡萄园网站设计

在过去的几年中&#xff0c;越来越多的企业推出自己的网站。以下网站是挑选的世界各地的葡萄园网站&#xff0c;有些还是著名的旅游景点&#xff0c;而另一些则只是家族企业与伟大的产品的历史。之前给大家分享个很多行业的企业网站&#xff0c;这篇文章收集了30个宏伟的酒厂和…

网站iis php发布网站吗,PHP网站在IIS中发布的相关配置

前言前段时间整了一个挂Q的平台。源代码是从网上下载的&#xff0c;后期稍微调整了一下链接和title之类的文字就上线了。详细在这里。运行了一段时间&#xff0c;除了偶尔出现QQ下线上线&#xff0c;整体效果基本上符合预期&#xff0c;个人感觉很满意&#xff0c;也小有成就感…

php网站后台登录背景,wordpress后台登录页面logo/链接/背景修改(自定义)

wordpress后台登录页面logo链接默认是链接到https://cn.wordpress.org/&#xff0c;logo图标是一个W图&#xff0c;没有背景图。为了个性化&#xff0c;很多wordpress网站后台都进行了自定义WordPress的登录页面。这个可以在主题的functions.php 添加一些简单的代码来实现自定义…

【PC网站前端架构探讨系列】关于中小型PC网站前端架构方案的讨论与实践

目 录 1.遇到的问题 2.目标 3.探讨 4.架构设想 5.流程 6.初步实现 7.存在问题 8.最后 遇到的问题 我在这个系列上篇文章 已经讲解并开始逐步应用模块化思想&#xff0c;不知大家还记不记得&#xff0c;题目&#xff1a;【PC网站前端架构探讨系列】结合公司网站首页&#xff0…

网站访问慢跟80端口_怎样用黑群创建自己的个人网站

我们搭建网站通常是在云服务器或云虚拟空间&#xff0c;亦或是自己的笔记本电脑。前者需要另外按月购买&#xff0c;后者需要24H联网开机。而已经在手上的(黑群)安装Web Station后&#xff0c;不仅不需要额外购买&#xff0c;还不用自己从零搭建网站。那么我们现在开始吧&#…

网站能ping通 网页打不开_怎么回事?我的电脑浏览器打不开网页,但微信、QQ却又能用?...

怎么回事&#xff1f;我的电脑浏览器打不开网页&#xff0c;但微信、QQ却又能用&#xff1f;打开电脑&#xff0c;登上微信、QQ&#xff0c;打开网页&#xff0c;这已经是每天的日常工作了。怎么回事&#xff0c;我的网页怎么打不开了&#xff1f;换个浏览器&#xff0c;好奇怪…

js通过月份判断前三个月_【扫黑专题】分析BC跳转JS骚操作、解决网站反复被黑【实战操作】...

【扫黑专题】分析BC跳转JS骚操作、解决网站反复被黑【实战操作】 前几天写了一篇文章、关于分析BC做法的文章(如果有没看的兄弟、请去公众号&#xff1a;逆冬黑帽SEO&#xff0c;公众号里有更多精彩文章)、下面我们再来看看BC跳转手法(主要以JS为主)、以及大家讲讲如何防黑的干…

安全狗linux更新日志,网站安全狗_ 网站安全狗(Linux版)_下载之家

网站安全狗(Linux版)是一款服务器安全防护软件,网站安全狗集网站内容安全防护,网站资源保护及网站流量保护功能为一体的服务器工具。网站安全狗功能涵盖了网马/木马扫描,防SQL注入,防盗链,防CC攻击,网站流量实时监控,网站CPU监控,下载线程保护,IP黑白名单管理,网页防篡改功能(结…

背景视频html5网页,视频作为网站背景? HTML 5

我可能有一个解决方案&#xff0c;可以将视频作为背景&#xff0c;并扩展到浏览器的宽度或高度(但视频仍将保留长宽比&#xff0c;尚无法找到解决方案。)&#xff1a;将视频放在带有bodydummy的正文标签之后。之后&#xff0c;放置一个“婴儿假人”标签&#xff1a;将所有内容放…

外贸电子商务网站之Prestashop 设置网站基本信息

顶部banner图&#xff0c;首页各尺寸banner图、社交分享、物流支持、支付方式提醒等等设置 示例版本&#xff1a;1.6.1.11 转载于:https://www.cnblogs.com/MY0101/p/6424770.html

使用Django开发集成Pytorch\Tensorflow的人工智能网站

AI_WEB 链接&#xff1a;resnet分类模型 提取码&#xff1a;nh4r 查看nginx错误日志cat /var/log/nginx/error.log1.基础环境和软件库需求2.Xshell远程连接服务器3.安装Linux版本的Anaconda4.安装并测试Django5.Git使用6.服务器拉取仓库代码7.规范django开发文件8.配置settin…

Hdlbit网站练习:Exams/ece241 2013 q4:水位问题

此题需要注意的地方有三个&#xff1a; 1&#xff09;水位监测器的输入是状态跳转的条件 2&#xff09;assign {fr3,fr2,fr1} {!s[1],!s[2],!s[3]};//不能根据输入判断否则会提前一会时钟 3&#xff09;assign dfr (state < next_state) ? 1’b0 : 1’b1; //使用组合逻辑…

从hdlbit网站学习到有关独热码编码方式的认识

题目如下所示&#xff1a; 首先介绍独热码&#xff1a; 其特征就是&#xff1a;只有一个位为1其余全为0 的编码方式 优点&#xff1a;因为每一个状态只有一位为1&#xff0c;减少了毛刺的产生&#xff08;时序电路增加&#xff0c;组合电路减少 &#xff09; 缺点&#xff1a;…

php 通用密码,(php脚本自研分享)•通用型保存网站用户密码到css文件

很多时候呢&#xff0c;我们拿到一个shell以后&#xff0c;偶尔会遇到密码解不了的情况&#xff0c;用xss收集cookie吧&#xff0c;感觉不方便&#xff1b;利用xss平台劫持表单吧&#xff0c;感觉麻烦&#xff0c;也会担心自己想要的密码别人也copy了一份等等情况吧&#xff0c…

网站关键词html代码,html网站代码+网站关键词如何优化呢

原标题&#xff1a;html网站代码网站关键词如何优化呢html网站代码网站关键词如何优化呢&#xff1f;为大家讲解一下。一、h标签优化1)h标签分为h1-h6标签&#xff0c;h1-h6分为六个层级。权重依次递减2)h1标签是h标签中最重要的&#xff0c;也是赋予权重最高的&#xff0c;因为…

使用float设置经典的网站前端结构(深入探讨)

DIV的特点&#xff1a;关于宽度&#xff1a;1.要是DIV的宽没有设定&#xff0c;那么其宽度默认为auto&#xff0c;即会填满其父元素。2.要是DIV的宽度设定了&#xff0c;那么其宽度不会受子元素或父元素影响。3.要是DIV的子元素宽度大于它自己的宽度&#xff0c;不管子元素有没…

产品开发都应该知道的8个网站,增强工作体验

0. 引言 好的资源网站可以节约我们大量的开发时间&#xff0c;那么本期&#xff0c;就分享下多年积攒的高质量前端、设计网站。每个都值得收藏&#xff01; 图标类 1. iconfont 阿里巴巴图标库 网址&#xff1a;www.iconfont.cn 说明&#xff1a;你要的图标我都有&#xff…

利用cmd和ip入侵电脑_网络安全分享:如何避免你的网站被入侵?

在移动互联网的高速发展下&#xff0c;一切都开始进入了以数据和流量为王时代。那么企业想要发展就要开始改变经营模式&#xff0c;从而就出现了线下和线上运营模式。通过线上推广宣传扩大知名度&#xff0c;做线上就必须要有自己的网站&#xff0c;但是有了网站后还需要用心维…

前端 domparser未定义怎么解决_小白如何学Web前端 怎么解决网站响应时间过长

小白如何学Web前端&#xff1f;怎么解决网站响应时间过长&#xff1f;在完成网页制作项目的时候&#xff0c;有人发现在这个过程中网页打开很慢&#xff0c;即网站响应时间过长。针对这个问题&#xff0c;下面就给大家分享几种比较好的解决方法。网站响应时间是什么?网站响应时…

数据量大的sql怎么做优化_绵阳网站排名优化怎么做

绵阳网站排名优化怎么做&#xff0c;推广佳传媒口碑好&#xff0c;做一个合格的推广佳传媒人&#xff1a;“永远积极&#xff0c;永不放弃” 是推广佳传媒人的信念&#xff1b;“认真、快、坚守承诺”是推广佳传媒人的行为准则&#xff1b;“没有任何借口”是推广佳传媒人的行为…