第一次接触java web开发,花费了一天半的时间,写了个简单的登录页面,以此文为记。

开发工具

Eclipse Luna Release (4.4.0) 已集成maven,maven目前的体会就是管理各种依赖

jetty为maven提供的一个插件,类似tomcat

struts2框架,MVC,action,jsp

mysql server 5.6

开发过程

1. 新建Maven web工程

Group Id: org.apache.maven.archetypes

Artifact Id: maven-archetype-webapp

2. 使用maven添加依赖及插件

在pom.xml的<dependencies></dependencies>间添加,或者是右键工程选择Maven->Add Dependency

jsp页面支持

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>

struts2

<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.16</version>
</dependency>

mysql connector

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.31</version>
</dependency>

jetty

为插件,在<plugins></plugins>间添加,或者是右键工程选择Maven->Add Plugin,接着在pom.xml中写配置

<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.10</version> <configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<stopKey>foo</stopKey>
<stopPort>9999</stopPort>
</configuration> <executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals> <configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution> <execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>

编译源码的插件

<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version> <configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>

注意plugin的层次

<build>
<plugins>
<plugin>...</plugin>
</plugins>
</build>

3. maven命令行

网上搜索资料,得知命令mvn jetty:run,可以启动jetty。

请教杨学长后,知道在Eclipse中,右键工程,选择run as中的run configurations,打开界面如下

红框部分,即是maven命令输入的地方,如jetty:run

4. struts2框架开发登录页面

4.1 web.xml中添加struts2过滤器

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

4.2 struts.xml中添加action

<package name="struts2demo" namespace="/" extends="struts-default">
<action name="Login">
<result>login.jsp</result>
</action> <action name="Welcome" class="struts2demo.WelcomeUserAction">
<result name="SUCCESS">welcome_user.jsp</result>
<result name="ERROR">error.jsp</result>
</action>
</package>

4.3 MVC

V->login.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%> <html>
<head></head> <body> <s:form action="Welcome">
<s:textfield name="username" label="Username"/>
<s:password name="password" label="Password"/>
<s:submit/>
</s:form> </body>
</html>

M->WelcomeUserAction.java

package struts2demo;

import java.sql.*;

public class WelcomeUserAction {
//<s:textfield name="username"> you can get it from <s:property value="username">
private String username;
private String password; //get and set method for struts2 fill in
//Username is the label name
public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} //"all struts logic here"
public String execute() {
//
try {
Class.forName("com.mysql.jdbc.Driver");
//System.out.println("Success loading Mysql Driver!");
}
catch (Exception e) {
//System.out.println("Error loading Mysql Driver!");
e.printStackTrace();
} //
try {
Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/zrss", "root", "1234"); String sql = "select * from user where name = ?";
PreparedStatement ps = connect.prepareStatement(sql);
ps.setString(1, username);
ResultSet rs = ps.executeQuery(); while (rs.next()) {
if (rs.getString("password").equals(password)) {
return "SUCCESS";
}
}
}
catch (Exception e) {
e.printStackTrace();
} return "ERROR";
}
}

C->forward to SUCCESS(welcome_user.jsp) or ERROR(error.jsp)

5. 参考资料

http://www.cnblogs.com/fnng/archive/2011/12/16/2290587.html maven的命令行使用

http://www.mkyong.com/struts2/struts-2-hello-world-example/ struts2的一个简单例子

http://freeshare.free4lab.com/resource?id=971 项目组开发环境

java web: eclipse & maven & jetty & struts2 & mysql = 简单登录页面的更多相关文章

  1. 使用Eclipse+Maven+Jetty构建Java Web开发环境(几个教程综合集成2014发行)

    工作需要使用Jetty由于web集装箱,得知Eclipse+Maven+Jetty该组合是非常好的,因此,要在网上找了很多教程,但不写或多或少特定的或过时的内容而导致最终的配置失败,易于配置为未来的同 ...

  2. 用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)

    (软件环境) 『系统』Windows 10 x64 『JAVA』JDK 1.8.0_91 『Eclipse』 Eclipse-oxygen 『Maven』 apache-maven-3.6.3 『Je ...

  3. MyEclipse创建SSH项目(Java web由maven管理)

    JavaEE后台开发,MyEclipse创建SSH项目,MyEclipse创建Java web 由maven管理的SSH项目. Demo工程源码github地址 1.创建SSH项目 1.创建web工程 ...

  4. java web eclipse中项目的加载过程

    java web eclipse中项目的加载过程: Tomcat默认从WEB-INF/目录下加载资源,Eclipse在发布程序的时候,并没有把User Libraries的相关资源拷贝到WEB-INF ...

  5. Intellij IDEA +MAVEN+Jetty实现SpringMVC简单查询功能

    利用 Intellij IDEA +MAVEN+Jetty实现SpringMVC读取数据库数据并显示在页面上的简单功能 1 新建maven项目,配置pom.xml <project xmlns= ...

  6. JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)

    接上篇<JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构.调试.部署>,通过一个简单的JSP WEB网站了解了JAVA WEB相关的知识,比如:Ser ...

  7. struts2+spring3+hibernate3+mysql简单登录实现

    1.导入相关的jar包 2.建立数据库 1 create table account( 2 id int(10), 3 user varchar(50), 4 paw varchar(50) 5 ); ...

  8. eclipse maven jetty启动修改默认端口

    如何修改eclipse中的maven项目jetty服务器的默认端口那?网上有很多办法,但配置上都没有效果,最后找到了简单.简洁的解决办法,就是在eclipse的jetty启动命令后面加上以下内容 je ...

  9. java web学习总结(二十二) -------------------简单模拟SpringMVC

    在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...

随机推荐

  1. 树形dp入门练习(hdu1011+hdu1061)

    hdu1011 和 hdu1561类似,给定每个节点的花费以及价值,并且子节点必须在父亲节点取到以后才可以被取到 相当于是在树上进行的01背包 dp时考虑每一个子树 root和它的每一个儿子,状态转移 ...

  2. Codeforce 221 div1

    A 只要打个表就能发现,1,6,8,9的所有排列就可以产生0~6的余数了... 所以...走不下去的时候一定要打表... #define rep(i,n) for(int i=0 ; i<(n) ...

  3. 手势触摸定位(UIPanGestureRecognizer)

    /** 1.相对于父坐标系而言,表示当前触摸点所在的位置 */ CGPoint locationPoint = [panGestureRecognizer locationInView:panGest ...

  4. Javascript:阻止浏览器默认右键事件,并显示定制内容

    在逛一些知名图片社区的时候,遇到自己心怡的图片,想要右键另存的时候,默认的浏览器菜单不见了,却出现了如:[©kevin版权所有]之类的信息: 今天在看Javascript事件默认行为相关的知识,所以, ...

  5. ios 基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果demo

    demo功能:基于CAEmitterLayer的雪花,烟花,火焰,爱心等效果. demo说明:基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化. 粒子画在背景层 ...

  6. 如何在虚拟机中安装Win7系统

    在虚拟机里安装系统,可以很方便我们对系统的各项功能进行测试,而又不会影响本机系统,本节就介绍如何在虚拟机中安装Win7系统 . 工具/原料 vm9虚拟机 电脑一台 方法/步骤 1 在百度上搜索win7 ...

  7. SQL通用函数-nvl-nvl2 -nvlif-nullif-coalesce-decode-case

    通用函数适用于任何类型数据(包括空值),一般用于实现空值处理.条件运算和多路分支结果,下面介绍其中常用的几种: nvl(exp1, exp2) 函数nvl(exp1, exp2)用于将空值转换为指定的 ...

  8. intent-filter data Uri 意图过滤器 详解

    组件的intent-filter属性         如果一个 Intent 请求在一片数据(Uri)上执行一个动作(Action), Android 如何知道哪个应用程序的哪个组件能用来响应这个请求 ...

  9. JAVA泛型解释

    理解Java泛型最简单的方法是把它看成一种便捷语法,能节省你某些Java类型转换(casting)上的操作: 1 List<Apple> box = ...; 2 Apple apple ...

  10. lnmp架构下php安全配置分享

    目录[-] 1. 使用open_basedir限制虚拟主机跨目录访问 2. 禁用不安全PHP函数 3. 关注软件安全资讯 4. php用户只读 5. 关闭php错误日志 6. php上传分离 7. 关 ...