Struts+Tomcat搭建


tomcat使用(服務器端開發):    

 

如果要安裝Tomcat需要進行的配置:tomcat安裝在c: \Tomcat

CATALINA_HOME變量值設為: H:\Program Files (x86)\tomcat\apache-tomcat-7.0.27

CATALINA_BASE變量值設為: H:\Program Files (x86)\tomcat\apache-tomcat-7.0.27

CATALINA_TMPDIR變量值設為:H:\Program Files (x86)\tomcat\apache-tomcat-7.0.27\temp;

 

         檢測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安裝目錄\jre\lib\ext”目錄下凡是出現找不到包的情況,都可以將找到的包放到JDK\jre\lib\ext下

3.然后在”tomcat安裝目錄\webapps\ROOT” 里面按如下的文件結構ROOT\WEB-INF\lib\servlet-api.jar(servlet的.jar包,要放在lib下面,可以改名字)

ROOT\WEB-INF\classes\HelloWorld.class(把上面生成的HelloWorld.class放這)

4.修改”tomcat安裝目錄\webapps\ROOT\WEB-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安裝目錄下conf\server.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.在項目WebContent\WEB-INF目錄下建一個page文件夾,留作備用(存放自己的頁面)

右擊WEB-INF文件夾-->New-->Folder-->Folder name為page-->finish

4.將struts\lib下的jar包復制到WebContent\WEB-INF\lib目錄下,右擊項目名-->MyEclipse-->add JSTL Libraries…-->finish導入jstl類庫此時WebContent\WEB-INF\lib會多出jstl.jar和standard.jar

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>
        <!-- 處理中文亂碼的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”

修改后如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>結果頁</title>
</head>
<body>
    <% String name = request.getParameter("name");
    out.println(name);%>您好~
</body>
</html>

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM