可以直接在MyEclipse下建一个web工程;方便很多。
我是在Eclipse 下建的,需要手动建
1.新建一个工程,一个包,一个类,
2.建一个lib文件夹,将servlet-api.jar(tomcat 安装目录下的lib文件夹下有)copy进去,通过buildpath导入这个三方包
3.然后这个类就可以继承HttpServlet,重写里面的doGet 或者doPost方法来进行响应
4.在工程下面建一个WebRoot(名字可以自定义)文件夹,下面建一个
WEB-INF(必须一致),里面有一个classes文件夹和一个web.xml,如果在其他html(action)需要向此servlet服务器发送请求,就将他copy到WebRoot文件夹下
5.依照下面的路径将class文件制定到classes文件夹下
6.下面就是web.xml里面的内容
访问url<url-pattern> <servlet-mapping>中的(eg:http:localhost:8080/WEBROOT/test)
获得他的<servlet-name>,再到<servlet>中通过这个名字找到他的class
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"> <servlet> <servlet-name>testapp</servlet-name> <servlet-class>com.android.app.MyApp</servlet-class> </servlet> <servlet-mapping> <servlet-name>testapp</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> </web-app>
package com.android.app; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MyApp extends HttpServlet { /* * 客户端通过GET请求 */ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 处理乱码方式一 resp.setContentType("text/html;charset=UTF-8"); /* 通过这个key标签得到客户端传过来的参数 */ // req.getParameter("key"); /* 服务器给出的回应 */ resp.getWriter().write("hello你好"); } /* * 客户端通过POST请求 */ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
第一种方式:(更改一次,copy次,不推荐)
将这个文件夹WebRoot 复制到webapps下,启动tomcat,访问url
第二种方式:在tomcat目录下conf/server.xml 中做映射
<context path="/app" docBase="WebRoot 的绝对路径">
访问:http://localhost:8080/app/test 这个就只是服务器做出响应的代码
get提交获取参数乱码解决方式:
1.更改server.xml
<connector URlEncoding="UTF-8"></connector>
2.String user_Name = new String(userName.getBytes("ISO-8859-1"),"UTF-8");
post提交获取参数乱码解决方式
request.setCharacterEncoding("UTF-8");
做出响应乱码解决方式:
resp.setContentType("text/html;charset=UTF-8")