zoukankan      html  css  js  c++  java
  • Struts+Tomcat搭建

    Struts+Tomcat搭建

    tomcat使用(服务器端开发):    

    如果要安装Tomcat需要进行的配置:tomcat安装在c: Tomcat

    CATALINA_HOME变量值设为: H:Program Files (x86) omcatapache-tomcat-7.0.27

    CATALINA_BASE变量值设为: H:Program Files (x86) omcatapache-tomcat-7.0.27

    CATALINA_TMPDIR变量值设为:H:Program Files (x86) omcatapache-tomcat-7.0.27 emp;

             检测Tomcat配置是否成功:

             接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了

            应用一之建立自己的jsp app目录

    1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录;

    2.在webapps目录下新建一个目录,起名叫myapp;

    3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;

    4.WEB-INF下新建一个文件web.xml,内容如下:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>   <display-name>My Web Application</display-name>   <description> A application for test. </description> </web-app>

    5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:<html><body><center> Now time is: <%=new java.util.Date()%> </center></body></html>

    6.重启Tomcat

    7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 能看到当前时间就说明成功了

              应用二之建立自己的Servlet

    1.写入你的第一个Servlet

    import java.io.*;
    
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    public class HelloWorld extends HttpServlet
    {
      public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws ServletException,IOException{     response.setContentType("text/html");     PrintWriter out = response.getWriter();     out.println("<html><head><title>");     out.println("This is my first Servlet");     out.println("</title></head><body>");     out.println("<h1>Hello,World!</h1>");     out.println("</body></html>");   } }

    2.然后用javac HelloWorld.java命令来编译它如果出现软件包 javax.servlet 不存在等错误信息将”Tomcat安装目录lib”目录下的servlet-api.jar拷贝一份放到“JDK安装目录jrelibext”目录下凡是出现找不到包的情况,都可以将找到的包放到JDKjrelibext下

    3.然后在”tomcat安装目录webappsROOT” 里面按如下的文件结构ROOTWEB-INFlibservlet-api.jar(servlet的.jar包,要放在lib下面,可以改名字)

    ROOTWEB-INFclassesHelloWorld.class(把上面生成的HelloWorld.class放这)

    4.修改”tomcat安装目录webappsROOTWEB-INF”下的web.xml模板文件

    把下面这段程序

    servlet>
    .....
    </servlet>
    
    <servlet-mapping>
    ......
    </servlet-mapping>

    替换成

    <servlet>
      <servlet-name>HelloWorld</servlet-name> 
      <servlet-class>HelloWorld</servlet-class>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>HelloWorld</servlet-name> 
      <url-pattern>/servlet/HelloWorld</url-pattern>
    </servlet-mapping>

    如果没有的话,就直接加那段代码

    修改完毕后,重新启动Server,然后再输入http://localhost:8080/servlet/HelloWorld

    看到hello,world !表示成功了

    补充:在JSP文件开头加入下面这条语句可以实现中文名称显示

    <%@ page language="java" contentType="text/html; harset=gb2312" %>

    修改tomcat安装目录下confserver.xml为

    port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
    enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"
    connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>

    注意黑体部分是修改的地方,修改之后就可以让TOMCAT支持中文链接了
             应用三之建立搭建struts使用myeclipse开发自己的Servlet

    如果在MyEclipse里创建dynamic web project的话(我用的myeclipse10)

    1.准备工作,去网上下载struts-1.3.10类库(2.3.1.2版本经测试少包)

    2.需要在创建新项目时,选中Show All Wizards:

    然后file-->new-->other-->web-->dynamic web project创建好项目名为web的项目-->finish如图

                                                       

    3.在项目WebContentWEB-INF目录下建一个page文件夹,留作备用(存放自己的页面)

    右击WEB-INF文件夹-->New-->Folder-->Folder name为page-->finish

    4.将strutslib下的jar包复制到WebContentWEB-INFlib目录下,右击项目名-->MyEclipse-->add JSTL Libraries…-->finish导入jstl类库此时WebContentWEB-INFlib会多出jstl.jar和standard.jar(myeclipse2014好像自动添加了而且好像没有standard.jar,而且target running那一项添加不上其他的选项)

    5.由于strus接收中文请求参数存在乱码,需要通过一个过滤器解决

    右击项目-->New-->Filter然后配置如图

                                                       

    点击finish会生成EncodeingFilter类,然后删除类中没必要的代码,最后代码如下

    package com.bravestarr.web.filter;

    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.annotation.WebFilter;

    @WebFilter("/EncodeingFilter")
    public class EncodeingFilter implements Filter {
      public void destroy() {
      }

      public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
        //我们的网站是什么编码此处就设置什么编码
        request.setCharacterEncoding("UTF-8");
        chain.doFilter(request, response);
      }

      public void init(FilterConfig fConfig) throws ServletException {
      }
    }

    6.生成struts配置文件并进行配置

    右击项目名-->MyEclipse-->add structs Capabilities…-->进行如下设置-->finish此时也会自动生成一个web.xml

                                                       

    修改struts-config.xml成

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
    <struts-config>
    <form-beans>
    <form-bean name="myForm" type="com.bravestarr.formbean.MyForm" />
    </form-beans>

    <action-mappings>
    <!-- 表示运行时地址栏路径为manage.do -->
    <action path="/manage" name="myForm" scope="request" parameter="method" type="com.bravestarr.action.MyManageAction">
    <forward name="result" path="/WEB-INF/page/result.jsp"/>
    </action>
    </action-mappings>
    </struts-config>

    7.修改web.xml成

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
        <display-name>myweb</display-name>
        <filter>
            <filter-name>EncodingFilter</filter-name>
            <display-name>EncodingFilter</display-name><!--这是错误的地方,原博主写的不对,这条不能加因为displayname是站台名-->
            <!-- 处理中文乱码的EncodingFilter类 -->
            <filter-class>com.bravestarr.web.filter.EncodingFilter</filter-class>
        </filter>
    
        <filter-mapping>
            <filter-name>EncodingFilter</filter-name>
            <!-- 表示对所有.do结尾的进行过滤 -->
            <url-pattern>*.do</url-pattern>
        </filter-mapping>
    
        <!-- 启动struts框架的servlet -->
        <servlet>
            <servlet-name>struts</servlet-name>
            <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
            <init-param>
                <param-name>config</param-name>
                <!-- struts的配置文件 -->
                <param-value>/WEB-INF/struts-config.xml</param-value>
            </init-param>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>struts</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
    </web-app>

    8.实现struts-config.xml中的result.jsp结果页面视图,用来显示结果,右击第3步创建的page文件夹,New-->Other(选中Show All Wizards)-->web-->JSP File-->Next-->File name输入result.jsp-->finish

                                                         

    生成的JSP文件默认编码为” ISO-8859-1”需要改成你需要的,比如我们用”UTF-8”

    9.实现struts-config.xml中的“com.bravestarr.formbean.MyForm“继承自ActionForm

    右击项目名-->New-->Class-->进入如下配置后点击finish

                                                         

    修改代码如下

    package com.bravestarr.formbean;
    
    import org.apache.struts.action.ActionForm;
    
    public classMyForm extends ActionForm {
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

    10.实现struts-config.xml中的“com.bravestarr.action.MyManageAction”继承自DisPatchAction,右击项目名-->New-->Class-->进入如下配置后点击finish

                                                         

    然后重写execute(ActionMapping mapping, ActionForm form,     HttpServletRequest request, HttpServletResponse response)方法,然后随便改个方法名字如下

    package com.bravestarr.action;
    import com.bravestarr.formbean.*;//原博主忘了这条,不知道怎么运行起来的,估计也是粘贴复制吧
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.actions.DispatchAction;
    
    public classMyManageAction extends DispatchAction {
        public ActionForward showInfo(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)  throws Exception {
            MyForm myForm= (MyForm)form;
            System.out.println("name="+myForm.getName());
            return mapping.findForward("result");
        }
    }

    打开浏览器,输入http://localhost:8080/web/manage.do?method= showInfo &name=zhangsan 能看到“zhangsan您好”就说明成功了

  • 相关阅读:
    使用NBU进行oracle异机恢复
    mycat偶尔会出现JVM报错double free or corruption并崩溃退出
    exp导出数据时丢表
    service_names配置不正确,导致dg创建失败
    XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
    HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端
    java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类
    【JAVA集合框架一 】java集合框架官方介绍 Collections Framework Overview 集合框架总览 翻译 javase8 集合官方文档中文版
    java内部类深入详解 内部类的分类 特点 定义方式 使用
    再谈包访问权限 子类为何不能使用父类protected方法
  • 原文地址:https://www.cnblogs.com/codeblock/p/4298443.html
Copyright © 2011-2022 走看看