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