J2EE Web开发入门—通过action是以传统方式返回JSON数据
关键字:maven、m2eclipse、JSON、Struts2、Log4j2、tomcat、jdk7、Config Browser Plugin
Created by Bob 20131031
l 开发准备工作
一、开发所需工具及相关组件介绍
Eclipse IDE for Java EE Developers, 247 MB
http://www.eclipse.org/downloads/
apache-tomcat-7.0.42-windows
http://www.apache.org/dist/tomcat/tomcat-7/v7.0.42/bin/
Java SE Development Kit 7u45
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
apache-maven-3.1.0-bin
http://maven.apache.org/download.cgi
二、搭建开发环境参考文档
JDK安装及配置
http://xiaoxing598.diandian.com/post/2012-05-06/17031020
Maven安装及配置
http://blog.csdn.net/yuguiyang1990/article/details/8775046
安装m2eclipse插件
http://blog.csdn.net/yuguiyang1990/article/details/8796410
Tomcat安装及配置
http://jingyan.baidu.com/article/8065f87fcc0f182330249841.html
SVN安装及配置
http://www.tech-juice.org/2012/05/01/how-to-add-a-new-eclipse-project-to-an-svn-repository/
ConfigBrowser插件
http://struts.apache.org/release/2.2.x/docs/config-browser-plugin.html
l 第一个开发实践
通过Struts2返回第一个JSON对象的源码下载:
http://bobproject.googlecode.com/svn/tags/tag_ReportWebApp_source_v1.0
一、通过maven的pom.xml引入相关组件
1、struts2的dependency
http://mvnrepository.com/artifact/org.apache.struts/struts2-core/2.3.15.2
2、json的dependency
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
3、javax.servlet的dependency
<dependency>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>javax.servlet</artifactId>
<version>3.0.0.v201112011016</version>
</dependency>
4、log4j2的dependency http://logging.apache.org/log4j/2.x/maven-artifacts.html
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.0-beta9</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0-beta9</version>
</dependency>
5、ConfigBrowser插件
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-config-browser-plugin</artifactId>
<version>2.3.15.2</version>
</dependency>
二、搭建struts2程序框架
1、创建ReportAction.java
创建public void doAction() throws IOException;
2、创建struts.xml配置文件
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="testJSONFromActionByGeneral" class="com.tuoming.iqa.action.ReportAction"
method="doAction">
</action>
</package>
</struts>
3、web.xml中添加struts2配置代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<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>*.action</url-pattern>
</filter-mapping>
</web-app>
4、index.jsp中添加客户端代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>Struts2与JSON测试</title>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</head>
<body>
<a href="<%=basePath%>testJSONFromActionByGeneral.action" title="测试从Action以常规方式获取JSON数据">测试从Action以常规方式获取JSON数据</a>
</body>
</html>
5、pom.xml中添加tomcat-maven-plugin的plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.0-beta-1</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<path>/ ReportWebApp</path>
<server>tomcat</server>
<username>admin</username>
<password>password</password>
</configuration>
</plugin>
6、Right Click >> Run As >> Maven Build,在窗口中的Goals内输入:package tomcat:redeploy
三、采用Log4j2实现日志功能
1、指定目录下创建log4j2.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appenders>
<RollingFile name="outErrorFile" fileName="RWA_logs/exception.log"
filePattern="RWA_logs/$${date:yyyy-MM}/exception-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout
pattern="%d{yyyy.MM.dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
<SizeBasedTriggeringPolicy size="10MB" />
</RollingFile>
<RollingFile name="outDebugFile" fileName="RWA_logs/debug.log"
filePattern="RWA_logs/$${date:yyyy-MM}/exception-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout
pattern="%d{yyyy.MM.dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
<SizeBasedTriggeringPolicy size="10MB" />
</RollingFile>
<RollingFile name="outInfoFile" fileName="RWA_logs/info.log"
filePattern="RWA_logs/$${date:yyyy-MM}/exception-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout
pattern="%d{yyyy.MM.dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
<SizeBasedTriggeringPolicy size="10MB" />
</RollingFile>
<Console name="consolePrint" target="SYSTEM_OUT">
<PatternLayout
pattern="%d{yyyy.MM.dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
</Console>
</appenders>
<loggers>
<root level="DEBUG">
<appender-ref level="DEBUG" ref="outDebugFile" />
<appender-ref level="ERROR" ref="outErrorFile" />
<appender-ref level="INFO" ref="outInfoFile" />
</root>
</loggers>
</configuration>
2、需打印日志的Class中添加成员变量代码
private static Logger log = LogManager.getLogger(ReportInfo.class.getName());
3、打印日志方法如下
log.debug("通过action是以传统方式返回JSON数据");
4、C:\tomcat\bin\RWA_logs目录下查看日志是否生成
J2EE Web开发入门—通过action是以传统方式返回JSON数据的更多相关文章
- Web开发入门学习笔记
公司web项目终于要启动了,本以为django学习可以在实战中进行,结果最终使用了Drupal框架,好吧,那我们就PHP走起,买了本<细说PHP>,先跟着过一遍Web开发入门. HTTP协 ...
- day04 Java Web 开发入门
day04 Java Web 开发入门 1. web 开发相关介绍 2. web 服务器 3. Tomcat服务器启动的问题 4. Tomcat目录结构 5. Web应用程序(虚拟目录映射,缺省web ...
- java WEB开发入门
WEB开发入门 1 进入web JAVASE:标准- standard JAVA桌面程序 GUI SOCKET JAVAEE:企业-浏览器控制 web 2 软件结构 C/S :client ...
- 【python】 web开发入门
进入Web开发 现在你完成了Python忍者训练,准备深入Ptyhon的Web开发,但现在的问题是有很多的框架,从中选择最好的框架非常困难,但从初学者的角度出发,Flask基本Web框架将非常适合We ...
- Web开发入门经典:使用PHP6、Apache和MySQL 中文pdf扫描版
通过学习本书,读者很快就能明白为什么PHP.Apache和MySQL会迅速成为开发动态网站最流行的方式,本书将为读者理解这3个核心组件如何独立工作和协同工作奠定良好的基础,引导读者充分利用它们提供的各 ...
- PHP Web开发入门流程
在学习WEB开发前,至少有一个对C或者计算机编程任何一种语言的基本学习,这会对你以后的开发有一定的启蒙作用. 一.Web开发入门 推荐学习网址: http://www.w3school.com.cn/ ...
- Web开发入门教程:Pycharm轻松创建Flask项目
Web开发入门教程:Pycharm轻松创建Flask项目 打开Pycharm的file,选择创建新的项目,然后弹出对话框,我们可以看到里面有很多的案例,Flask.Django等等,我们选择生成Fla ...
- 【转载】salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable
salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable 本篇知识参考:https://developer.salesforce.com/trailhead/for ...
- Web API返回JSON数据
对Web API新手来说,不要忽略了ApiController 在web API中,方法的返回值如果是实体的话实际上是自动返回JSON数据的例如: 他的返回值就是这样的: { "Conten ...
随机推荐
- quartus使用笔记
quartus中默认顶层文件名与工程名相同,或自行设置顶层文件:project->set as top-leval entity 顶层模块名要与工程名相同 RTL是编译后的结果,并没有与实际的硬 ...
- java中throw和throws的区别
throw和throws的区别: throws 用在方法声明后面,跟的是异常类名 可以跟多个异常类名,用逗号隔开 表示抛出异常,由该方法的调用者来处理 throws表示出现异常的一种可能性,并不一定会 ...
- step by step 之餐饮管理系统三
1.说明 表名的长度最长为18个字符 茶色的字段为主键或联合主键 浅黄色的字段为索引 浅灰底色的字段为临时表中比正式表多出的字段 数据库系统:Sqlserver2008 脚本工具:使用CodeGene ...
- SQLSERVER 2012之AlwaysOn -- 一次硬件升级引发的问题
这是上周遇到的一个案例:对已有的硬件进行升级而引发的问题,期间还触发了一个比较严重的BUG,可谓多灾多难:不过值得庆幸的是,在一连串连锁问题出现的时候,并没有出现人工操作失误(这往往是在处理故障中风险 ...
- Neo4j 2.0 M4 发布
Neo4j 发布了 2.0 的第四个里程碑版本,该版本要求 Java 7 的支持.详细的改进记录请看发行通知. Neo是一个网络——面向网络的数据库——也就是说,它是一个嵌入式的.基于磁盘的.具备完全 ...
- apt-get程序和系统管理
检查更新:apt-get update 系统升级:apt-get upgrade 移除软件:apt-get remove xxx 自动移除旧的软件包:apt-get autoremove 完全移除软件 ...
- Dynamic CRM 2013学习笔记(十)客户端几种查询数据方式比较
我们经常要在客户端进行数据查询,下面分别比较常用的几种查询方式:XMLHttpRequest, SDK.JQuery, SDK.Rest. XMLHttpRequest是最基本的调用方式,JQuery ...
- Windows 8.0上Eclipse 4.4.0 配置CentOS 6.5 上的Hadoop2.2.0开发环境
原文地址:http://www.linuxidc.com/Linux/2014-11/109200.htm 图文详解Windows 8.0上Eclipse 4.4.0 配置CentOS 6.5 上的H ...
- 如何解决ASP.NET网站'__doPostBack' is undefined的脚本错误
最近碰到一个很奇怪的问题! 新发布一个ASP.NET的网站,基于.net 4.0 framework,基本没有用到什么特别新的技术,但是由于给客户预览用的服务器比较老,操作系统用的是Windows 2 ...
- JSP JSTL EL
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> Html代码 复制代 ...