Servlet的使用

WebProject的建立

(建立一个服务器)

可以直接在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文件夹下

Servlet的使用_第1张图片

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>


7.class代码,服务器的响应

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")

你可能感兴趣的:(tomcat)