设为首页 收藏本站
查看: 794|回复: 0

[经验分享] J2EE Web开发入门—通过action是以传统方式返回JSON数据

[复制链接]

尚未签到

发表于 2017-3-1 07:53:23 | 显示全部楼层 |阅读模式
  关键字:mavenm2eclipseJSONStruts2Log4j2tomcatjdk7Config 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数据");
  4C:\tomcat\bin\RWA_logs目录下查看日志是否生成

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348524-1-1.html 上篇帖子: hadoop2.1.0在ubuntu下的安装配置 下篇帖子: Maven搭建webService (二) 创建服务端---使用web方式发布服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表