SSH登陆示例

快来打我* 2022-08-21 06:46 370阅读 0赞

按照上一篇所写的内容配置好SSH开发环境

http://blog.csdn.net/zk673820543/article/details/51218358

源码下载

http://download.csdn.net/detail/zk673820543/9499360

1、创建数据库

新建数据库,命名为sshtest

CREATE DATABASE sshtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
新建表user_info,sql如下:
CREATE TABLE `t_user` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL,
`password` varchar(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
出入一条数据

insert into t_user values(1,’LJaer’,’123’);

Center

2、建立数据库连接

在MyEclipse中,将视图切换到MyEclipse Database Explorer,新建一个数据库连接

由于我这里数据库没设置密码,所以password那里就空下

Center 1

Center 2

由于我自己的mysql数据库没设置密码,所以没填

直接Finish。
在左侧双击刚才新增的数据库连接,输入密码,就可以看到ssh下面的t_user表了

Center 3

![Image 1][]

hibernate.cfg.xml根据实际情况进行修改

在src下新建一个package,model.system

回到数据库视图,右键点击t_user表,选择Hibernate Reverse Engineering

Center 4

![Image 1][]

Center 5![Image 1][]

Center 6

![Image 1][]

![Image 1][]

直接点Finish。
现在可以看到已经添加好的文件

Center 7

5、修改web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  3. <display-name>test</display-name>
  4. <!-- 首页设置 -->
  5. <welcome-file-list>
  6. <welcome-file>index.html</welcome-file>
  7. <welcome-file>index.htm</welcome-file>
  8. <welcome-file>index.jsp</welcome-file>
  9. <welcome-file>default.html</welcome-file>
  10. <welcome-file>default.htm</welcome-file>
  11. <welcome-file>default.jsp</welcome-file>
  12. </welcome-file-list>
  13. <!-- spring相关配置 -->
  14. <listener>
  15. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  16. </listener>
  17. <context-param>
  18. <param-name>contextConfigLocation</param-name>
  19. <param-value>classpath:applicationContext.xml</param-value>
  20. </context-param>
  21. <!-- 以下3项参数与log4j的配置相关 -->
  22. <context-param>
  23. <param-name>log4jConfigLocation</param-name>
  24. <param-value>classpath:log4j.properties</param-value>
  25. </context-param>
  26. <context-param>
  27. <param-name>log4jRefreshInterval</param-name>
  28. <param-value>60000</param-value>
  29. </context-param>
  30. <listener>
  31. <listener-class>
  32. org.springframework.web.util.Log4jConfigListener
  33. </listener-class>
  34. </listener>
  35. <span style="white-space:pre"> </span><!-- end -->
  36. <span style="white-space:pre"> </span>
  37. <!-- struts2相关配置 -->
  38. <filter>
  39. <filter-name>struts2</filter-name>
  40. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  41. </filter>
  42. <filter-mapping>
  43. <filter-name>struts2</filter-name>
  44. <url-pattern>/*</url-pattern>
  45. </filter-mapping>
  46. </web-app>

6.修改applicationContext.xml

内容如下

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. <span style="white-space:pre"> </span>xmlns="http://www.springframework.org/schema/beans"
  4. <span style="white-space:pre"> </span>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. <span style="white-space:pre"> </span>xmlns:p="http://www.springframework.org/schema/p"
  6. <span style="white-space:pre"> </span>xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
  7. <!--指明hibernate配置文件的位置 -->
  8. <bean id="sessionFactory"
  9. class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  10. <property name="configLocation" value="classpath:hibernate.cfg.xml" />
  11. <property name="mappingResources">
  12. <span style="white-space:pre"> </span><list>
  13. <span style="white-space:pre"> </span><value>model/system/TUser.hbm.xml</value></list>
  14. </property></bean>
  15. <!--定义DAO -->
  16. <bean id="userDao" class="dao.system.UserDao">
  17. <property name="sessionFactory">
  18. <ref bean="sessionFactory"/>
  19. </property>
  20. </bean>
  21. <!-- 配置LoginAction.java类文件 -->
  22. <bean id="LoginAction" class="action.login.LoginAction" scope="prototype">
  23. <property name="userService" ref="userService" />
  24. </bean>
  25. <!-- 配置service层 -->
  26. <bean id="userService" class="service.system.UserService">
  27. <property name="userDao">
  28. <ref bean="userDao"/>
  29. </property>
  30. </bean>
  31. </beans>

7、.添加dao,service和action
结构如下:

![Image 1][]

UserDao.java内容如下:

  1. package dao.system;
  2. import java.util.List;
  3. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
  4. import model.system.TUser;
  5. public class UserDao extends HibernateDaoSupport{
  6. public void add(TUser m)
  7. {
  8. getHibernateTemplate().save(m);
  9. }
  10. @SuppressWarnings("unchecked")
  11. public List<TUser> showAllUsers()
  12. {
  13. return getHibernateTemplate().find("from user");
  14. }
  15. public void update(TUser m)
  16. {
  17. getHibernateTemplate().update(m);
  18. }
  19. public void delete(String id)
  20. {
  21. getHibernateTemplate().delete(getHibernateTemplate().get(TUser.class, id));
  22. }
  23. public TUser getUserById(String id)
  24. {
  25. TUser m=(TUser)getHibernateTemplate().get(TUser.class, id);
  26. return m;
  27. }
  28. //普通用户登录验证
  29. @SuppressWarnings("unchecked")
  30. public boolean checkUser(String userName,String userPassword){
  31. boolean flag = false;
  32. String hql = "from TUser as user where user.username = '"+userName+"' and user.password = '"+userPassword+"'";
  33. List<TUser> userList = this.getHibernateTemplate().find(hql);
  34. if(userList.size()>0){
  35. flag = true;
  36. }
  37. return flag;
  38. }
  39. }

UserService.java内容如下:

  1. package service.system;
  2. import dao.system.UserDao;
  3. public class UserService{
  4. private UserDao userDao;
  5. public boolean checkUser(String userName,String userPassword)
  6. {
  7. return userDao.checkUser(userName, userPassword);
  8. }
  9. public UserDao getUserDao() {
  10. return userDao;
  11. }
  12. public void setUserDao(UserDao userDao) {
  13. this.userDao = userDao;
  14. }
  15. }

LoginAction.java内容如下:

  1. package action.login;
  2. import com.opensymphony.xwork2.ActionSupport;
  3. import service.system.UserService;
  4. public class LoginAction extends ActionSupport{
  5. private static final long serialVersionUID = 3989633817331294940L;
  6. private String username;
  7. private String password;
  8. private UserService userService = new UserService();
  9. public UserService getUserService() {
  10. return userService;
  11. }
  12. public void setUserService(UserService userService) {
  13. this.userService = userService;
  14. }
  15. public String getUsername() {
  16. return username;
  17. }
  18. public void setUsername(String username) {
  19. this.username = username;
  20. }
  21. public String getPassword() {
  22. return password;
  23. }
  24. public void setPassword(String password) {
  25. this.password = password;
  26. }
  27. public String execute(){
  28. boolean flag = false;
  29. if (username == null || username.trim().equals("")) {
  30. this.addFieldError("username", "用户名不能为空");
  31. return "fail";
  32. } else if (password == null || password.trim().equals("")) {
  33. this.addFieldError("password", "密码不能为空");
  34. return "fail";
  35. } else {
  36. flag = userService.checkUser(username, password);
  37. if (flag) {
  38. return "success";
  39. } else {
  40. return "fail";
  41. }
  42. }
  43. }
  44. }

9.修改struts.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
  4. "http://struts.apache.org/dtds/struts-2.1.dtd">
  5. <struts>
  6. <!--下述语句是将struts2交给spring管理 -->
  7. <constant name="struts.objectFactory" value="spring" />
  8. <!--将action内容放在package元素下,package元素的name值与extends值可以使用默认值,如下所示 -->
  9. <package name="ssh" extends="struts-default">
  10. <!--例如与用户登录相关的LoginAction,配置如下,其中,class值与applicationContext.xml文件中该action的id值相对应,name值作为标识-->
  11. <action name="loginAction" class="LoginAction">
  12. <!--result元素设置页面跳转值,其中name值为目标页面的字符串标识,如下,登录失败时回到fail.jsp页面,成功时,转向success.jsp页面 -->
  13. <result name="fail">/jsp/login/fail.jsp</result>
  14. <result name="success">/jsp/login/success.jsp</result>
  15. </action>
  16. </package>
  17. </struts>

10.添加页面

在WebRoot文件夹下面新建一个jsp文件夹,存放页面。
结构如下:

![Image 1][]

fail.jsp内容如下:

  1. <%@ page language="java" pageEncoding="utf-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8. <head>
  9. <base href="<%=basePath%>">
  10. <title>Fail</title>
  11. </head>
  12. <body>
  13. 登陆失败。<br>
  14. </body>
  15. </html>

success.jsp内容如下:

  1. <%@ page language="java" pageEncoding="utf-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8. <head>
  9. <base href="<%=basePath%>">
  10. <title>Success</title>
  11. </head>
  12. <body>
  13. 登陆成功。<br>
  14. </body>
  15. </html>

修改index.jsp,内容如下:

  1. <%@ page language="java" pageEncoding="utf-8"%>
  2. <!-- 导入struts2标签库 -->
  3. <%@taglib uri="/struts-tags" prefix="s"%>
  4. <%
  5. String path = request.getContextPath();
  6. String basePath = request.getScheme() + "://"
  7. + request.getServerName() + ":" + request.getServerPort()
  8. + path + "/";
  9. %>
  10. <html>
  11. <head>
  12. <title>用户登录</title>
  13. </head>
  14. <body>
  15. <center>
  16. <div id="login">
  17. <s:form action="loginAction" method="post">
  18. <s:textfield label="用户名" name="username"></s:textfield>
  19. <s:password label="密码" name="password"></s:password>
  20. <s:submit value="登录"></s:submit>
  21. </s:form>
  22. </div>
  23. </center>
  24. </body>
  25. </html>

11.新增log4j.properties文件
放在src下

内容如下:

log4j.rootLogger=DEUBG, CATALINA

# Define all the appenders
log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.
log4j.appender.CATALINA.Append=true
log4j.appender.CATALINA.Encoding=UTF-8
# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern=’.’yyyy-MM-dd’.log’
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.LOCALHOST=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost.
log4j.appender.LOCALHOST.Append=true
log4j.appender.LOCALHOST.Encoding=UTF-8
log4j.appender.LOCALHOST.DatePattern=’.’yyyy-MM-dd’.log’
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.MANAGER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File=${catalina.base}/logs/manager.
log4j.appender.MANAGER.Append=true
log4j.appender.MANAGER.Encoding=UTF-8
log4j.appender.MANAGER.DatePattern=’.’yyyy-MM-dd’.log’
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.HOST-MANAGER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File=${catalina.base}/logs/host-manager.
log4j.appender.HOST-MANAGER.Append=true
log4j.appender.HOST-MANAGER.Encoding=UTF-8
log4j.appender.HOST-MANAGER.DatePattern=’.’yyyy-MM-dd’.log’
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

# Configure which loggers log to which appenders
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=INFO, MANAGER
INFO, HOST-MANAGER

log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]=INFO, HOST-MANAGER

12、部署运行

Center 8

Center 9

[Image 1]:

发表评论

表情:
评论列表 (有 0 条评论,370人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ssh 别名登陆

    此方法配合ssh 免密码登录 密钥登录可以快速登录服务器 通常我们在 Termianl 下用 ssh 链接远程主机的时候,每次都需要输入一长串的用户名加主机地址,是不是觉得很

    相关 配置ssh登陆

    \生成ssh免登陆密钥 \进入到我的home目录 cd ~/.ssh   ssh-keygen -t rsa (四个回车) 执行完这个命令后,会生成两个文件id\_r

    相关 远程登陆ssh

    远程登陆ssh 以下操作需要一个客户端和服务端两个虚拟机来完成。 打开两个虚拟机,可输入“nm-connectiong-editor”来修改ip 示例: 服务端

    相关 ssh 无密码登陆

    本文引用自:[Linux大神博客的博文][Linux]  SSH无密码登录:只需两个简单步骤 (Linux) 如果你管理一台Linux服务器,那么你就会知道每次SSH登

    相关 ssh登陆

    之前在windows下有putty,xshell,mobaXterm 工具可以选择。 现在用mac,暂时没怎么找到好到软件,直接用ssh好了。 ssh -p 22 user