servlet2016

来源:互联网 发布:太极集团知乎 编辑:程序博客网 时间:2024/06/05 14:47

1.web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><display-name>js</display-name><servlet><servlet-name>test</servlet-name><servlet-class>com.TestServlet</servlet-class></servlet><servlet-mapping><servlet-name>test</servlet-name><url-pattern>/test</url-pattern></servlet-mapping></web-app>

2.TestServlet.java

package com;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestServlet extends HttpServlet {/** *  */private static final long serialVersionUID = -7670474842106614925L;@Overridepublic void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setContentType("text/html;charset=utf-8");    request.setCharacterEncoding("utf-8");    PrintWriter out = response.getWriter();//输出文本    out.print("Hello java jdbc servlet!");}}


---------------------------end---------------------


3.sevrlet3.0支持注解配置

TestAnnotationServlet.java

package com;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet(name="test1",value="/test1")public class TestAnnotationServlet extends HttpServlet {/** *  */private static final long serialVersionUID = 4641567045529297915L;@Overridepublic void service(HttpServletRequest request , HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub response.getWriter().write("Hello Servlet3.0");}}


4.比较全的例子


package com;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet(name = "test1", value = "/test1.do")public class TestAnnotationServlet extends HttpServlet {/** *  */private static final long serialVersionUID = 4641567045529297915L;@Overridepublic void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");// 分析请求资源路径// String uri = request.getRequestURI();// String action = uri.substring(uri.lastIndexOf("/"),// uri.lastIndexOf("."));// 获得请求参数值String name = request.getParameter("name");name = "hello java";// 输出文本// PrintWriter out = response.getWriter();// out.print("文本");// 输出字节(非文本)// OutputStream ops = response.getOutputStream();// 重定向// response.sendRedirect("list.do");// 设置数据request.setAttribute("name", name);// 转发request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);// url重写// response.sendRedirect(response.encodeRedirectURL("list.jsp"));}}

package com.cydiguo.web;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.cydiguo.po.Student;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;@WebServlet(name = "test1", value = "/test1")public class Test1 extends HttpServlet {/** *  */private static final long serialVersionUID = -527010784044892613L;@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// TODO Auto-generated method stubresponse.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();Student s1 = new Student(1, "张三", "北京大学");Student s2 = new Student(2, "李四", "清华大学");List<Student> l1 = new ArrayList<Student>();l1.add(s1);l1.add(s2);//gsonGson gson=new Gson();//对象转jsonString j1 = gson.toJson(s1);  //list转jsonString j2 = gson.toJson(l1);  String ss1="{\"id\":1,\"name\":\"张三\",\"school\":\"北京大学\"}";String ss2="[{\"id\":1,\"name\":\"张三\",\"school\":\"北京大学\"},{\"id\":2,\"name\":\"李四\",\"school\":\"清华大学\"}]";//json字符串转成对象Student sst1 = gson.fromJson(ss1, Student.class);  //json字符串转成listList<Student> ll1 = gson.fromJson(ss2, new TypeToken<List<Student>>(){}.getType()); out.print(j2);}}


out.close();


5.过滤器

package com;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.annotation.WebFilter;@WebFilter(filterName="filter1",value={"/aaa","/test1"})public class TestFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {// TODO Auto-generated method stub System.out.println("执行过滤操作"); chain.doFilter(request, response);}}


6.servlet的json



package testupload;import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import java.util.UUID;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;@WebServlet(name = "t2", value = "/t2")public class TestUpload2 extends HttpServlet {private static final long serialVersionUID = -8409633323355548984L;@Overridepublic void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");//response.setContentType("text/html;charset=utf-8");response.setContentType("application/json;charset=UTF-8"); PrintWriter out = response.getWriter();  // TODO Auto-generated method stub// step1 创建一个工厂类的实例,该实例 为解析器提供了缺省的配置。DiskFileItemFactory factory = new DiskFileItemFactory();// step2 创建一个解析器ServletFileUpload sfu = new ServletFileUpload(factory);// step3 使用解析器解析try {// 解析之后,会将表单中的数据转换成一个个 FileItem对象。一个表单域中的数据对应于一个FileItem对象。List<FileItem> items = sfu.parseRequest(request);// step4 遍历items集合for (int i = 0; i < items.size(); i++) {FileItem item = items.get(i);// 读表单域中的数据时,要区分表单域的类型if (item.isFormField()) {// 普通表单域String username = item.getString();System.out.println("username是:" + username);} else {// 文件上传表单域ServletContext sctx = getServletContext();String path = sctx.getRealPath("upload");System.out.println("path是:" + path);// 获得文件名UUID uuid = UUID.randomUUID();        String uuids=uuid.toString().replaceAll("-", "");        SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒");        String dates=sDateFormat.format(new Date());String fileNameNew = dates+"-"+uuids;  //获得文件名                     String fileName = item.getName(); String fileType = fileName.substring(fileName.lastIndexOf("."));File file = new File(path + File.separator + fileNameNew+fileType);System.out.println("file是:"+file);System.out.println("11111111111111111");item.write(file);out.write("{success:\"0\",fileName:\"您请求的内容不存在!\"}");  System.out.println("222222222222222333");}}} catch (Exception e) {out.print("失败");  e.printStackTrace();} out.close();}}


0 0