목차
JDK+Tomcat+ MyEclipse开发环境搭建
JDK下载安装
Tomcat下载安装
MyEclipse下载安装并配置
web测试环境
登录实例(SSH框架+bootstrap 3)
数据库准备(选择mysql)
MyEclipse配置SSH框架
Bootstrap设计登录页面
“form-signin-heading” > 用户登录
完成登录验证逻辑功能
登录实例(SSH框架+bootstrap 3+DWR+AJAX)
DWR环境准备
DWR实例测试
웹 프론트엔드 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 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

공식 계정 웹 페이지의 캐싱 업데이트에 어려움 : 버전 업데이트 후 사용자 경험에 영향을 미치는 이전 캐시를 피하는 방법은 무엇입니까? 공식 계정 웹 페이지의 캐싱 업데이트에 어려움 : 버전 업데이트 후 사용자 경험에 영향을 미치는 이전 캐시를 피하는 방법은 무엇입니까? Mar 04, 2025 pm 12:32 PM

공식 계정 웹 페이지 업데이트 캐시, 이것은 간단하고 간단하며 냄비를 마시기에 충분히 복잡합니다. 공식 계정 기사를 업데이트하기 위해 열심히 노력했지만 사용자는 여전히 기존 버전을 열었습니까? 이 기사에서는이 뒤에있는 비틀기와 회전을 살펴 보고이 문제를 우아하게 해결하는 방법을 살펴 보겠습니다. 읽은 후에는 다양한 캐싱 문제를 쉽게 처리 할 수있어 사용자가 항상 가장 신선한 콘텐츠를 경험할 수 있습니다. 기본 사항에 대해 먼저 이야기 해 봅시다. 액세스 속도를 향상시키기 위해 브라우저 또는 서버는 일부 정적 리소스 (예 : 그림, CSS, JS) 또는 페이지 컨텐츠를 저장합니다. 다음에 액세스 할 때 다시 다운로드하지 않고도 캐시에서 직접 검색 할 수 있으며 자연스럽게 빠릅니다. 그러나 이것은 또한 양날의 검입니다. 새 버전은 온라인입니다.

HTML5 양식 유효성 검사 속성을 사용하여 사용자 입력을 유효성있게하려면 어떻게합니까? HTML5 양식 유효성 검사 속성을 사용하여 사용자 입력을 유효성있게하려면 어떻게합니까? Mar 17, 2025 pm 12:27 PM

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

HTML5의 크로스 브라우저 호환성에 대한 모범 사례는 무엇입니까? HTML5의 크로스 브라우저 호환성에 대한 모범 사례는 무엇입니까? Mar 17, 2025 pm 12:20 PM

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

웹 페이지의 PNG 이미지에 뇌졸중 효과를 효율적으로 추가하는 방법은 무엇입니까? 웹 페이지의 PNG 이미지에 뇌졸중 효과를 효율적으로 추가하는 방법은 무엇입니까? Mar 04, 2025 pm 02:39 PM

이 기사는 CSS를 사용한 웹 페이지에 효율적인 PNG 테두리 추가를 보여줍니다. CSS는 JavaScript 또는 라이브러리에 비해 우수한 성능을 제공하며, 미묘하거나 눈에 띄는 효과를 위해 테두리 너비, 스타일 및 색상 조정 방법을 자세히 설명합니다.

& lt; datalist & gt의 목적은 무엇입니까? 요소? & lt; datalist & gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:33 PM

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

html5 & lt; time & gt; 의미 적으로 날짜와 시간을 나타내는 요소? html5 & lt; time & gt; 의미 적으로 날짜와 시간을 나타내는 요소? Mar 12, 2025 pm 04:05 PM

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

& lt; Progress & Gt의 목적은 무엇입니까? 요소? & lt; Progress & Gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:34 PM

이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

& lt; meter & gt의 목적은 무엇입니까? 요소? & lt; meter & gt의 목적은 무엇입니까? 요소? Mar 21, 2025 pm 12:35 PM

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

See all articles