ssh环境搭建并实现登录功能
参照了这篇博客,但是里面有些地方进行了更改
User.java和User.hbm.xml反向生成
package com.us.mine.beans; /**
* User entity. @author MyEclipse Persistence Tools
*/ public class User implements java.io.Serializable { // Fields private Integer userId;
private String userName;
private String password;
private Integer gender; // Constructors /** default constructor */
public User() {
} /** full constructor */
public User(String userName, String password, Integer gender) {
this.userName = userName;
this.password = password;
this.gender = gender;
} // Property accessors public Integer getUserId() {
return this.userId;
} public void setUserId(Integer userId) {
this.userId = userId;
} public String getUserName() {
return this.userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return this.password;
} public void setPassword(String password) {
this.password = password;
} public Integer getGender() {
return this.gender;
} public void setGender(Integer gender) {
this.gender = gender;
} }
User.java
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.us.mine.beans.User" table="user" catalog="world">
<id name="userId" type="java.lang.Integer">
<column name="userId" />
<generator class="native" />
</id>
<property name="userName" type="java.lang.String">
<column name="userName" length="16" not-null="true" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="16" not-null="true" />
</property>
<property name="gender" type="java.lang.Integer">
<column name="gender" not-null="true" />
</property>
</class>
</hibernate-mapping>
User.hbm.xml
然后是登录页,注意元素的name要和action类中的一致,form的action要和struts.xml中一致。加一个登录成功页main.jsp。
<body>
<form method="post" action="Login">
用户名:<input name="username" type="text" />
密码:<input name="password" type="password" /> <input
name="Submits" type="submit" value="登录" /> <input name="ReSet"
type="reset" value="重置" />
</form>
</body>
index.jsp
然后LoginDao,LoginDaoImpl,LoginService,LoginServiceImpl
package com.us.mine.dao;
public interface LoginDao {
boolean login(String username, String password);
}
LoginDao.java
package com.us.mine.dao;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.us.mine.beans.User;
public class LoginDaoImpl extends HibernateDaoSupport implements LoginDao {
@Override
public boolean login(String username, String password) {
List<User> u=this.getHibernateTemplate().find("from User where userName=? and password=?",username,password);
Boolean flag=false;
if(u.size()>0){
flag=true;
}
return flag;
}
}
LoginDaoImpl
package com.us.mine.service;
public interface LoginService {
boolean login(String username, String password);
}
LoginService
package com.us.mine.service; import com.us.mine.dao.LoginDao;
import com.us.mine.dao.LoginDaoImpl; public class LoginServiceImpl implements LoginService { private LoginDao logindao; public void setLogindao(LoginDaoImpl loginDao) {
this.logindao = loginDao;
} @Override
public boolean login(String username, String password) {
return logindao.login(username, password);
} }
LoginServiceImpl
然后是LoginAction 并在struts.xml中进行配置,注意action的class填写的和application里面注入的action的id相同
package com.us.mine.action; import com.opensymphony.xwork2.ActionSupport;
import com.us.mine.service.LoginService; public class LoginAction extends ActionSupport{
private LoginService loginservice;
private String password;
private String username; public LoginService getLoginservice() {
return loginservice;
} public void setLoginservice(LoginService loginservice) {
this.loginservice = loginservice;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String login(){
Boolean flag=loginservice.login(username, password);
if(flag){
return SUCCESS;
}else{
return INPUT;
}
}
}
LoginAction
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="Login" class="logina" method="login">
<result name="input">/index.jsp</result>
<result name="success">/main.jsp</result>
</action>
</package>
</struts>
struts.xml
最后是applicationContext.xml。主要是最下面3个bean,可以看到类之间的注入关系
<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/world"></property>
<!-- 加入后解决数据库连接不上错误 -->
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="username" value="root"></property>
<property name="password" value="1234"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/us/mine/beans/User.hbm.xml</value>
</list>
</property>
</bean>
<bean id="UserDAO" class="com.us.mine.dao.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean> <!-- Dao注入sessionFactory -->
<bean id="logind" class="com.us.mine.dao.LoginDaoImpl">
<!-- 注入持久化操作所需的SessionFactory -->
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean> <!-- service注入dao id为下面的ref class为service实现类 -->
<bean id="logins" class="com.us.mine.service.LoginServiceImpl">
<property name="logindao" ref="logind"></property>
</bean> <!-- Action注入service id="" 注入 class="action路径" name="loginservice"与LoginAction中声明的要保持一致
ref随便取 -->
<bean id="logina" class="com.us.mine.action.LoginAction" scope="prototype">
<property name="loginservice" ref="logins"></property>
</bean>
</beans>
applicationContext.xml
运行后一直报错,发现上面的配置文件少了
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>加上后可以运行
输入
ssh环境搭建并实现登录功能的更多相关文章
- SSH环境搭建之Hibernate环境搭建篇
SSH环境搭建之Hibernate环境搭建篇 搭建有两种方式: 1.使用IntelliJ IDEA或者MyEclipse的逆向工程(关系模型 -> 对象模型),我使用的是IntelliJ IDE ...
- SSH环境搭建之Spring环境搭建篇
SSH环境搭建之Spring环境搭建篇 一.引入Spring所使用的JAR文件 二.在src目录下创建beans.xml(Spring的容器文件) <?xml version="1.0 ...
- SSH环境搭建步骤解析
一.建立Java web project:AngelSSH 二.引入jar包,必要清单如下 2.1,Struts2 commons-fileupload 文件上传组件 commons-io io ...
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_1 回顾Mybatis的环境搭建-实现查询所有功能
先回顾Mybits的环境搭建,. 直接next 直接点击finish 创建好的项目. 所有东西都自己写不现实,约束文件的头部还是拷贝过来 导入依赖坐标,Mybits mysql的驱动 log4j 单元 ...
- SSH环境搭建,配置整合初步(一)
1,新Webproject.并把编码设为utf-8(全部的都是uft8数据库也是,就不会乱码了)2.加入框架环境JunitStruts2Hibernate Spring3,整合SSHStruts2与S ...
- GateOne Web SSH 环境搭建
环境配置安装python及tornadoyum -y install python-pippip install tornado GateOne安装下载源码:git clone https://git ...
- Spring学习之SpringMVC框架快速搭建实现用户登录功能
引用自:http://blog.csdn.net/qqhjqs/article/details/41683099?utm_source=tuicool&utm_medium=referral ...
- 最新版ssh hibernate spring struts2环境搭建
最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...
- Linux Ubuntu从零开始部署web环境及项目-----搭建ssh环境(一)
linux搭建ssh环境 1,用户登录 成功输入用户名和密码后 进入Ubuntu界面 2,配置网络 参考:http://blog.csdn.net/liu782726344/article/deta ...
随机推荐
- 【转】Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法
原博文地址:http://www.cnblogs.com/york-hust/archive/2012/07/07/2580388.html 文件是在WIndows 下创建的,Windows 的文件名 ...
- Android中SharedPreferences函数具体解释
Android平台提供了一个SharedPreferences类,它是一个轻量级应用程序内部轻量级的存储方案,特别适合用于保存软件配置參数,比方boolean,int,float,long,Strin ...
- python <tab>自动补全
1.获取python目录[我使用的是64位ubuntu系统] [~$]python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] ...
- MFC数据类型(data types)
为便于理解MFC库函数中的各种形参,现将MFC中常见的参数类型总结如下: 下面这些是和Win32程序(SDK程序)共同使用的数据类型: 数据类型 意义 BOOL Boolean值(布尔值,不是TRUE ...
- Table显示边框
style="border-bottom: 1px solid #CCCCCC;"
- Heritrix个性化设置抓取目标
本文是Heritrix的使用的高级篇,针对对Heritrix已经能够运行的码农朋友们! 我们在抓取网页的时候,网页的链接中往往会包含有js.css.图片.视频等文件,第一次执行抓取任务的时候,许多农民 ...
- BZOJ 3230: 相似子串( RMQ + 后缀数组 + 二分 )
二分查找求出k大串, 然后正反做后缀数组, RMQ求LCP, 时间复杂度O(NlogN+logN) -------------------------------------------------- ...
- mina、netty消息边界问题(采用换行符)
在TCP连接开始到结束连接,之间可能会多次传输数据,也就是服务器和客户端之间可能会在连接过程中互相传输多条消息.理想状况是一方每发送一条消息,另一方就立即接收到一条,也就是一次write对应一次rea ...
- Socket缓冲区探讨,是否有拆包的方式?
Socket缓冲区探讨 本文主要探讨java网络套接字传输模型,并对如何将NIO应用于服务端,提高服务端的运行能力和降低服务负载. 1.1 socket套接字缓冲区 Java提供了便捷的网络编程模式, ...
- nyist0j 35 表达式求值
题目链接:表达式求值 该题以前做过但是WA了,今天终于把他解决了,各种悲剧啊,又是考虑不周到啊................... 所以贴出来纪念一下,并作为一个警示 /**** ps:注意当遇到 ...