目录
JDK+Tomcat+ MyEclipse开发环境搭建
JDK下载安装
Tomcat下载安装
MyEclipse下载安装并配置
web测试环境
登录实例(SSH框架+bootstrap 3)
数据库准备(选择mysql)
MyEclipse配置SSH框架
Bootstrap设计登录页面
“form-signin-heading” > 用户登录
完成登录验证逻辑功能
登录实例(SSH框架+bootstrap 3+DWR+AJAX)
DWR环境准备
DWR实例测试
首页 web前端 html教程 Java+SSH+Bootstrap开发笔记_html/css_WEB-ITnose

Java+SSH+Bootstrap开发笔记_html/css_WEB-ITnose

Jun 21, 2016 am 08:54 AM

JDK+Tomcat+ MyEclipse开发环境搭建

JDK下载安装

( 1 )下载 JDK 对应版本,双击安装 JDK ,选择安装路径,安装完毕继续安装 JRE ,修改安装路径,安装完毕配置环境变量。计算机 → 属性 → 高级系统设置 → 高级 → 环境变量。

( 2 )系统变量 → 新建 JAVA_HOME 变量 。变量值填写 jdk 的安装目录(到安装目录查看属性复制即可,我的是 D:\Program Files\Java\jdk1.8.0_72) 。

( 3 )系统变量 → 寻找 Path 变量 → 编辑

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; (注意原来 Path 的变量值末尾有没有 ; 号,如果没有,先输入 ; 号再输入上面的代码)

( 4 )系统变量→新建 CLASSPATH 变量

变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一点)

系统变量配置完毕。

( 5 )检验是否配置成功 运行 cmd 输入 java -version ( java 和 -version 之间有空格),若如图所示 显示版本信息 则说明安装和配置成功。

Tomcat下载安装

(1)下载tomcat对应版本,这里下载apache-tomcat-8.0.32-windows-x64.zip免安装版,直接解压到需要的目录即可。

(2)配置CATALINA_HOME环境变量, 计算机 → 属性 → 高级系统设置 → 高级 → 环境变量。系统变量 → 新建 CATALINA_HOME,变量值输入tomcat安装根目录,如我的是D:\Program Files\apache-tomcat-8.0.32。

(3)测试tomcat配置是否成功(依赖之前JDK环境变量配置) 进入tomcat安装目录,进入bin文件夹, 运行 cmd 窗口,拖入 startup.bat 执行命令,此时跳出 tomcat 服务器运行 dos 界面,打开浏览器,输入 http://localhost:8080/ 显示如下便是配置成功。

MyEclipse下载安装并配置

(1)下载myeclipse对应版本(我是myeclipse-pro-2014-GA-offline-installer-windows.exe),选择安装路径安装即可。安装完毕破解教程进行破解。

(2)打开myeclipse,选择window → preferences →Java→Installed JREs→Add→Standard VM→Next→directory 选择 JDK 安装目录,我的是 D:\Program Files\Java\jdk1.8.0_72 ,点击 finish ,选择新添加的 JDK ,点击 OK 退出,

( 3 )选择 window → preferences →MyEclipse→services→tomcat→ 选择 tomcat 版本 ( 我的是 tomcat 8.x) → 点击 Enable→browsetomcathome 目录(我的是 D:\Program Files\apache-tomcat-8.0.32 ),展开 tomcat 8.x→ 选择 JDK→ 选择刚添加的 JDK VM (我的是 jdk1.8.0_72 )

配置成功。

web测试环境

(1)打开myeclipse,File →New→Web Project ,输入工程名 test ,点击 finish 新建一个 web 工程。

(2)右键工程名 →Run As→ MyEclipse server application ,选择 Tomcat 8.x ,点击 OK ,将 web 工程发布到 tomcat 服务器中。

( 3 )打开浏览器,输入 http://localhost:8080/test/ ,显示如下则配置环境成功。

登录实例(SSH框架+bootstrap 3)

数据库准备(选择mysql)

(1)安装数据库环境,下载合适的mysql,这里用mysql-5.6.22-winx64.msi,安装,配置(默认编码选择utf-8,兼容中文)数据库密码即可。

(2)添加连接数据库驱动,下载mysql的java的jdbc驱动程序,我用的是mysql-connector-java-5.1.34-bin.jar,运行MyEclipse打开数据库视图,如图:

对DB Browser右键,新建数据库连接驱动,选择驱动模块为mysql connector/J,输入驱动名字,连接url(注意连接编码集,我的数据库用utf-8编码,工程也是utf-8,设置为jdbc:mysql://localhost:3306/cls_anal?useUnicode=true&characterEncoding=utf-8),mysql登录名和密码,Add JARs添加jdbc库,Driver classname选择com.mysql.jdbc.Driver,选择保存密码,点击Test Driver测试通过即可点击finish完成,如图:

(3)打开mysql驱动连接到数据库中,右键新建一个数据库login,数据库字符编码选择utf-8,展开数据库,新建表userinfo,添加字段userid(主键,自动递增),username,userpass。新建一个sql视图插入一行数据到表中。

切换到工程视图(右上角 选择视图即可)。

MyEclipse配置SSH框架

  1. 新建web project工程,名字为login。

  1. 加入 Struts 支持,右键项目 →MyEclipse→ project facts → 选择安装 struts 1.x ,弹出界面选择下一步,点击 finish 。

  1. 加入Spring支持,右键项目 →MyEclipse→ project facts → 选择安装 Spring ,弹出界面选中下一步,然后将 applicationContext.xml 选择放在 WebRoot/WEB-INF 目录中,点击 finish 。

  1. 加入Hibernate支持,右键项目 →MyEclipse→ project facts → 选择安装 Hibernate ,弹出界面选中下一步,然后将 的勾去掉,下一步,在 DB Driver 选择之前建好的数据库驱动 mysql ,然后点击 finish 。

查看 applicationContext.xml 配置文件,确保数据库驱动配置正确(因为自动生成的一般不正确),如下所示, driverClassName (有些自动生成是不对的), url (记得加上编码集为 utf-8 ,因为我的数据库是 utf-8 的,前台转到后台的 spring 过滤器也是 utf-8 的), username , password 配置正确。

class = “org.apache.commons.dbcp.BasicDataSource” >

value = “com.mysql.jdbc.Driver” >

property >

value = “jdbc:mysql://localhost:3306/cls_anal?useUnicode=true&characterEncoding=utf-8″ >

property >

property >

property >

bean >

(5)在struts-config.xml的前加入下面配置(覆盖 message-resources ),(这里使用spring管理struts的action)。

processorClass=”org.springframework.web.struts.DelegatingRequestProcessor”>

login.struts.ApplicationResources” />

value=”/WEB-INF/applicationContext.xml” />

( 6 )打开 web.xml 在 前加入如下代码 配置请求编码(使用 spring转换器,编码为utf-8)(这样统一使用utf-8,中文存储到数据库就不会出现乱码了) :

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

encodingFilter

/*

Bootstrap设计登录页面

  1. 复制编译版的bootstrap整个文件夹到工程WebRoot下,如图:

  1. 在WebRoot新建login.jsp文件。使用bootstrap登录组件,login.jsp代码如下:

page language=”java” import=”java.util.*” pageEncoding=”utf-8″ %>

String path = request.getContextPath ();

String basePath = request.getScheme ()+ “://” + request.getServerName ()+ “:” + request.getServerPort ()+ path + “/” ;

%>

“en” >

“utf-8″ >

“X-UA-Compatible” content = “IE=edge” >

“viewport” content = “width=device-width, initial-scale=1″ >

“description” content = 登录界面 >

“author” content = “jly” >

“icon” href = “../../favicon.ico” >

<strong>登录界面</strong>

“bootstrap/css/bootstrap.min.css” rel = “stylesheet” >

“css/signin.css” rel = “stylesheet” >

“container” >

“form-signin” >

“form-signin-heading” > 用户登录

“text” id = “inputUser” class = “form-control” placeholder = 用户名 required autofocus >

“password” id = “inputPassword” class = “form-control” placeholder = 密码 required >

“checkbox” >

“checkbox” value = “remember-me” > 记住我

  1. 在WebRoot下新建文件夹css,在文件夹css下新建login.css样式文件,文件内容如下:

body {

padding-top : 40px;

padding-bottom : 40px;

background-color : #eee;

}

. form-signin {

max-width : 330px;

padding : 15px;

margin : 0 auto;

}

. form-signin . form-signin-heading ,

. form-signin . checkbox {

margin-bottom : 10px;

}

. form-signin . checkbox {

font-weight : normal;

}

. form-signin . form-control {

position : relative;

height : auto;

-webkit-box-sizing : border-box;

-moz-box-sizing : border-box;

box-sizing : border-box;

padding : 10px;

font-size : 16px;

}

. form-signin . form-control : focus {

z-index : 2;

}

. form-signin input [ type=”email” ] {

margin-bottom : -1px;

border-bottom-right-radius : 0;

border-bottom-left-radius : 0;

}

. form-signin input [ type=”password” ] {

margin-bottom : 10px;

border-top-left-radius : 0;

border-top-right-radius : 0;

}

  1. 运行login工程到服务器上,在浏览器输入 http://localhost:8080/login/login.jsp ,显示如下:

完成登录验证逻辑功能

  1. 在工程文件夹src下新建包 com.pojo(实体层) 和 com.dao(持久层),切换到MyEclipse Database Explorer视图打开login数据库的userinfo表,右键选择Hibernate reverse engineering弹出界面,src文件夹选择login/src,包选择com.pojo,选择需要生成的项,点击下一步将id generator设置为native(根据数据库决定是什么就是什么,一般自动编号可以选择native,如果主键是自己确定则选择assigned),点击finish,如图所示:

将生成的UserinfoDao.java拖入com.dao包中,如图:

  1. 新建 com.service包,包下新建类UserinfoService.java封装持久化操作,代码如下:

package com . service ;

com . pojo . Userinfo ;

import com . dao . UserinfoDAO ;

public class UserinfoService {

// 依赖注入 UserinfoDAO 要设置 spring 配置文件 applicationContext.xml

private UserinfoDAO userinfoDAO ;

public UserinfoDAO getUserinfoDAO () {

return userinfoDAO ;

}

public void setUserinfoDAO ( UserinfoDAO userinfoDAO ) {

this . userinfoDAO = userinfoDAO ;

}

// 判断登录

public boolean Login ( Userinfo user )

{

if ( userinfoDAO .findByExample(user).size()>0)

return true ;

return false ;

}

}

  1. 新建 action和actionForm,右键->New->Other->MyEclipse->Web Struts 1.x->Struts Form,Action&Jsp->Next弹出界面配置Form,输入Use case为userinfo,添加Form Properties,添加用户名username,用户密码userpass(实例属性,对应视图层表单的name,这里对应登录界面jsp表单的用户名和用户密码,这样客户端才能通过struts实例化这个formbean),如图:

点击下一步,配置Action,superclass继承选择org.apache.struts.actions.DispatchAction(即一个action可以对应很多方法动作);input source选择login.jsp(提交表单数据的页面);选择parameter选项,设置参数为method(这里随意,到时调用action的某个函数动作要由它指定);选择Forward选项,点击添加几个Forwards(用于表单提交动作之后逻辑处理后可以进行相关的跳转),然后点击finish即可,如图:

此时生成了Action和Form类,Form作为视图层实例化的Bean,变量需要对应视图层输入jsp的表单元素的属性名与ID,Action作为动作反应,是逻辑处理层对视图层的submit逻辑处理。

对生成的UserinfoAction.java修改逻辑处理(覆盖 execute 函数 增加 Loginexecute 函数 ),修改后代码如下:

package com . struts ;

import javax . servlet . http . HttpServletRequest ;

import javax . servlet . http . HttpServletResponse ;

import org . apache . struts . action . Action ;

import org . apache . struts . action . ActionForm ;

import org . apache . struts . action . ActionForward ;

import org . apache . struts . action . ActionMapping ;

import com . service . UserinfoService ;

import com . pojo . Userinfo ;

//DispatchAction 允许同一个 action 多个函数用于动作反应

public class UserinfoAction extends DispatchAction {

依赖注入 UserinfoService 要设置 spring 配置文件 applicationContext.xml

private UserinfoService userinfoService ;

public UserinfoService getUserinfoService () {

return userinfoService ;

}

public void setUserinfoService ( UserinfoService userinfoService ) {

this . userinfoService = userinfoService ;

}

public ActionForward Loginexecute ( ActionMapping mapping , ActionForm form ,

HttpServletRequest request , HttpServletResponse response ) {

UserinfoActionForm userinfoActionForm = ( UserinfoActionForm ) form ; // TODO Auto-generated method stub

Userinfo user = new Userinfo ();

user . setUsername ( userinfoActionForm . getUsername ());

user . setUserpass ( userinfoActionForm . getUserpass ());

// 如果用户名和密码输入正确登录成功

if ( userinfoService . Login ( user ))

{

return mapping . findForward ( “success” );

}

else

{

return mapping . findForward ( “error” );

}

}

}

  1. 由于 UserinfoAction.java 和 UserinfoService.java 采用了 spring 相关依赖注入技术,因此在 spring 配置文件 applicationContext.xml 的 前加入下面配置。

依赖注入 –>

这里标红那里要对应 struts-config.xml相应的action的path=”/userinfo”,此为action的名字,视图层可以调用这个动作,并struts通过spring来进行执行(这里使用spring管理struts的action)。

  1. 修改视图层的login.jsp将用户名和密码输入表单的id和name设置映射为对应UserinfoForm的变量名。

修改form表单action为

  1. 工程部署到服务器上,打开浏览器,输入 http://localhost:8080/login/login.jsp ,进行测试,输入正确用户密码时:

登录实例(SSH框架+bootstrap 3+DWR+AJAX)

DWR环境准备

(1)下载dwr环境包,这里用dwr3.x.jar,将dwr.jar复制到前面工程的WebRoot/WEB-INF/lib下。

(2)配置 web.xml 文件。在 web.xml 的前 加 入如下代码,进行 DWR 框架配置。

dwr-invoker org.directwebremoting.servlet.DwrServlet debug true

dwr-invoker /dwr/*

(3)在web.xml同目录下新建dwr.xml(根据dwr1.x 2.x还是3.x配置)文件。配置如下:

-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN”

“http://www.getahead.ltd.uk/dwr/dwr20.dtd”>

DWR实例测试

  1. 在UserinfoAction.java类中添加函数如下:

/ / 通过传入的用户密码判断登录 返回信息

public String signin(String username,String userpass)

{

String mess= “error” ;

Userinfo user= new Userinfo(username,userpass);

System. out .println( “55″ );

if ( userinfoService .Login(user))

mess= “success” ;

return mess;

}

  1. 配置dwr.xml文件。将 signin 方法配置到dwr.xml中,使其可以访问。

xml version=”1.0″ encoding=”UTF-8″?>

-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN”

“http://www.getahead.ltd.uk/dwr/dwr20.dtd”>

  1. 在前台视图login.jsp文件的

    标签之间加入下面:

script >

script >

script >

其次,编写登陆按钮的提交事件,事件名称是onValidation();具体实现代码如下(

标签之间):

    function onValidation()

{

signin.signin(document.getElementById( “username” ).value,document.getElementById( “userpass” ).value,signinCallback);

}

function signinCallback(data){

if (data== “error” ) alert( “ 用户或密码错误 “ );

else if (data== “success” ) window.location.href= “success.jsp” ;

}

script >

将登录按钮添加onclick属性为 onClick=”onValidation()”,type 属性改为 type=”button” 。

(4) 运行工程,打开浏览器,输入用户密码验证:

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验? 公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验? Mar 04, 2025 pm 12:32 PM

公众号网页更新缓存,这玩意儿,说简单也简单,说复杂也够你喝一壶的。你辛辛苦苦更新了公众号文章,结果用户打开还是老版本,这滋味,谁受得了?这篇文章,咱就来扒一扒这背后的弯弯绕绕,以及如何优雅地解决这个问题。读完之后,你就能轻松应对各种缓存难题,让你的用户始终体验到最新鲜的内容。先说点基础的。网页缓存,说白了就是浏览器或者服务器为了提高访问速度,把一些静态资源(比如图片、CSS、JS)或者页面内容存储起来。下次访问时,直接从缓存里取,不用再重新下载,速度自然快。但这玩意儿,也是个双刃剑。新版本上线,

如何高效地在网页中为PNG图片添加描边效果? 如何高效地在网页中为PNG图片添加描边效果? Mar 04, 2025 pm 02:39 PM

本文展示了使用CSS为网页中添加有效的PNG边框。 它认为,与JavaScript或库相比,CSS提供了出色的性能,详细介绍了如何调整边界宽度,样式和颜色以获得微妙或突出的效果

如何使用HTML5表单验证属性来验证用户输入? 如何使用HTML5表单验证属性来验证用户输入? Mar 17, 2025 pm 12:27 PM

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

&lt; datalist&gt;的目的是什么。 元素? &lt; datalist&gt;的目的是什么。 元素? Mar 21, 2025 pm 12:33 PM

本文讨论了html&lt; datalist&gt;元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

HTML5中跨浏览器兼容性的最佳实践是什么? HTML5中跨浏览器兼容性的最佳实践是什么? Mar 17, 2025 pm 12:20 PM

文章讨论了确保HTML5跨浏览器兼容性的最佳实践,重点是特征检测,进行性增强和测试方法。

&gt; gt;的目的是什么 元素? &gt; gt;的目的是什么 元素? Mar 21, 2025 pm 12:34 PM

本文讨论了HTML&lt; Progress&gt;元素,其目的,样式和与&lt; meter&gt;元素。主要重点是使用&lt; progress&gt;为了完成任务和LT;仪表&gt;对于stati

&lt; meter&gt;的目的是什么。 元素? &lt; meter&gt;的目的是什么。 元素? Mar 21, 2025 pm 12:35 PM

本文讨论了HTML&lt; meter&gt;元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了&lt; meter&gt;从&lt; progress&gt;和前

我如何使用html5&lt; time&gt; 元素以语义表示日期和时间? 我如何使用html5&lt; time&gt; 元素以语义表示日期和时间? Mar 12, 2025 pm 04:05 PM

本文解释了HTML5&lt; time&gt;语义日期/时间表示的元素。 它强调了DateTime属性对机器可读性(ISO 8601格式)的重要性,并在人类可读文本旁边,增强Accessibilit

See all articles