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您好”就说明成功了

  • 相关阅读:
    iOS把经纬度反转为位置信息(街道名等)
    ubuntu+mongodb
    IE6下绝对定位的高度自适应
    用Waitn控制网页
    PHPCMS 模板修改
    ubuntu+apache2+mono+mvc3
    灵活强大的jquery分页,样式可自定义
    委托与事件概要笔记
    ubuntu+nodejs
    linux 学习day3
  • 原文地址:https://www.cnblogs.com/codeblock/p/4298443.html
Copyright © 2011-2022 走看看