JavaEE_3_30_servlet详细介绍
2016-03-31 16:32
531 查看
1 Servlet简介
Java用来做web开发,那么web服务端开发的精髓就是Servlet(俗称java服务端小程序),主要作用是将java程序运行到web环境中。Servlet主要通过Http协议获取客户端的请求,得到客户端通过Http协议传输的参数,对这些请求进行相应的处理,在通过response参数回传到客户端。
2 Servlet的创建和使用
创建使用servlet:
首先你得选择用一个你喜欢的eclipse(我自己用的是Spring tools suit很好哦)myeclipse就免了吧(付费,太重),下载一个eclipse,file-->new--> Dynamin Web Project(动态web项目)。输入项目名(helloServlet)选择tomcat的版本为7.0,web版本为3.0。一路点击下去,在Generatew web.xml前的选择勾选(自动帮你创建web.xml文件)。项目结构如下:
- 兴建一个包 com.gu.servlet,兴建一个类HelloServlet 继承HttpServlet覆盖HttpSrevlet下面的doGet和doPost方法。来建一个最简单的servlet。代码如下:我们在doget方法中操作,通过resp来得到一个PrinterWrite,用这个PrinterWrite往页面中输出一些内容。
package com.gu.servlet; 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 HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter out = resp.getWriter(); resp.setContentType("text/html;charset=UTF-8"); out.println("<html>"); out.println("<body><h2>hello servlet</h2></body>"); out.println("</html>"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub super.doPost(req, resp); } }
-
配置web.xml如下:其中输入servlet,接下来servlet-name可以随便定义(最好见名知义)servlet-class将刚才写的servlet的类路径配置上去。然后配置servlet-mapping,其中servlet-name就是上面配置的servlet-name必须保持一致,url-patten就是你在浏览器输入的路径,相应的路径对应相应的servlet:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <servlet> <servlet-name>helloServlet</servlet-name> <servlet-class>com.gu.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
- 我在web.xml设置了/hello我们现在将服务发布,在tomcat的浏览器路径里设置如下:
- 这里我们用req.getParameter("string值")来得到从客户端传输的数据。以上是通常的得到一个字符串的方式。但是在项目中我们不是只是传字符串,很多情况下是要传输对象。用Paremeter方法就不行了,这里我们通常用Attribute代码是用做一个简单的客户端验证的:
- addinput.jsp
<%@page import="com.gu.model.JspError"%> <%@ 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=UTF-8"> <title>Insert title here</title> </head> <% JspError error = (JspError)request.getAttribute("error"); %> <body> <form action="<%=request.getContextPath()%>/hello" method="post"> 用户名:<input type="text" name="username"/> <% if(error!=null){ %> <span><%=error.getContent() %></span> <% } %> <br> <input type="submit" value="提交"/> </form> </body> </html>
- JspError.java
package com.gu.model; public class JspError { private int id; private String content; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public JspError(){ } public JspError(int id, String content) { super(); this.id = id; this.content = content; } }
- helloservlet的dopost方做操作
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.getParameter("username"); JspError error= new JspError(1,"请填写用户名"); if(username==null||"".equals(username.trim())){ System.out.println("init"); req.setAttribute("error", error); req.getRequestDispatcher("/jsp/addinput.jsp").forward(req, resp); } PrintWriter out = resp.getWriter(); resp.setContentType("text/html;charset=UTF-8"); out.println("<html>"); out.println("<body><h2>"+username+"</h2></body>"); out.println("</html>"); }
- 验证如下:
这就是服务端验证。
相关文章推荐
- Servlet 过滤器详细介绍
- 关于httpServletRequest中方法的详细介绍
- tomcat中Servlet的工作机制详细介绍
- 介绍一篇关于session的好文章,写的很详细(jsp-servlet 技术)
- Servlet基础 及详细介绍(附带代码)
- 介绍一篇关于session的好文章,写的很详细(jsp-servlet 技术)
- 介绍一篇关于session的好文章,写的很详细(jsp-servlet 技术)
- 介绍一篇关于session的好文章,写的很详细(jsp-servlet 技术)
- 介绍一篇关于session的好文章,写的很详细(jsp-servlet 技术)----(转贴自JavaResearch)
- servlet的详细介绍
- servlet 中 web.xml文件详细介绍
- 介绍一篇关于session的好文章,写的很详细(jsp-servlet 技术)
- servlet的详细介绍
- Servlet的应用及详细介绍
- Servlet详细介绍
- 介绍一篇关于session的好文章,写的很详细(jsp-servlet 技术)
- Servlet详细介绍,学习笔记
- 心得2--Servlet详细介绍及应用分析 .
- 介绍一篇关于session的好文章,写的很详细(jsp-servlet 技术)
- Servlet详细介绍和应用