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