标签:
一:什么是Servlet?
servlet:是java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,我的理解是:servlet接受来自客户端的请求,然后将其转发给业务逻辑处理,其本身并不做相关的业务逻辑处理,类似于前台框架MVC中的controller。
狭义的讲:servlet是指java语言实现的一个接口,即httpServlet接口;
广义的讲:servlet是指实现了这个servlet接口的类。
简单来说,servlet就是java编程语言中的一个类。
二:通过servlet实现增删改查
如果单纯使用servlet实现增删改查,那简直太简单了,下面正式进入我们的入门demo。其主要内容就是简单的一个form表单,内容是一个姓名,然后对其增删改查。
1·打开myEclipse,新建web project:
2·在webRoot文件夹下新建index.jsp页面:
右击webRoot文件夹——new——other——web——jsp(Basic templates)
3·新建jsp页面成功后,先改一下编码格式:
菜单栏——window——preferences——MyEclipse——Files and Editors——jsp,把Encoding改成如图所示内容:
4·在index.jsp页面添加代码:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!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=GB18030"> <title>Insert title here</title> </head> <body> <form action="servlet/deleteUser.do" method="post"> 姓名:<input type="text" name="username"/></br> <input type="submit" value="提交"/></br> </form> </body> </html>5·右击src文件夹:选择new——package,命名包名称为:com.bjpowernode.servlet
6·右击该新建的包,依次选择new——class,新建一个servlet类:TestServlet
7·在该servlet类中填写代码:
注意:该servlet类继承httpServlet类,并覆盖其中的doGet和doPost方法,这个继承方法的选择取决于jsp的请求方式。右击TestServlet类,依次选择source——override/Implement Methods
弹出对话框,选择doPost和doGet方法即可。代码如下:
package com.bjpowernode.servlet; 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 TestServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取参数,只负责取出参数,传给业务逻辑 String username = request.getParameter("username"); UserManager usermanager = new UserManager(); String url = request.getRequestURL().toString(); System.out.println("url=" + url); String path = url.substring(url.indexOf("/",3),url.indexOf(".")); System.out.println("path=" + path); if(path.contains("add")){ usermanager.add(username); //转发和重定向:如果将数据传回则是转发,如果不带回参数则是重定向,这是转发 request.getRequestDispatcher("/add_success.jsp").forward(request, response); } else if(path.contains("delete")){ usermanager.delete(username); request.getRequestDispatcher("/delete_success.jsp").forward(request, response); } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
9·在UserManager类中添加代码:主要是处理业务逻辑处理。
package com.bjpowernode.servlet; public class UserManager { //增加 public void add(String username){ System.out.println("UserManager.add() ---->> username" + username); } //删除 public void delete(String username){ System.out.println("UserManager.delete() ---->> username" + username); } //查询 public void query(String username){ System.out.println("UserManager.query() ---->> username" + username); } }10·配置web.xml配置文件,在WebRoot——WEB-INF文件夹下的web.xml,配置如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" 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_2_5.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>com.bjpowernode.servlet.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>*.do</url-pattern> <!-- 类似于fifter,过滤器,凡是后缀为.do的文件都会被servlet截获 --> <!-- <url-pattern>*.do</url-pattern> --> </servlet-mapping> </web-app>基本的代码这就算敲完了,接下来就是部署web项目了,部署很简单,
1.选择菜单栏——window——preferences,
出现弹出框以后,依次找到MyEclipse——Servers——Tomcat,选择tomcat版本即可。我选择的是tomcat7.0,然后点击browse,选择tomcat的本地路径即可。然后将"Tomcat 7.x server"下改为enable,便是允许tomcat7.0在该项目中使用。如图所示:
2·在左侧栏tomcat7.x下,选择jdk,右侧选择本地的jdk即可。
3·将该项目加到tomcat服务器上。选择菜单栏如图所示的图标:
出现弹出框后,点击add,将该项目添加到tomcat即可。
4·然后就ok了。在servers窗口出现tomcat 7.x,该下拉列表中有你的项目就说明ok了。如图所示:
好的,大功告成,现在我们打开浏览器,输入:http://localhost:8080/test_servlet,访问即可。出现如图界面:
现在我们在文本框中输入:servlet测试,点击提交,然后出现:
这就说明我们成功了!这就是通过servlet实现的增删改查,下面我们说明servlet的基本实现流程。
三:servlet工作流程
1·web客户端发出一个request请求,该请求为有规则的请求:类似于*.action;.do;
2·web.xml配置文件会结果该请求,通过web.xml配置文件的映射url,找到映射的servlet类
3·servlet类根据页面jsp的不同请求方法调用doGet()或者doPost(),此外还有doHead(),doPut(),doTrace(),doDelete(),doOptions()等方法,这些是servlet接口封装好的方法,实现类实现即可。
4·servlet类的相应方法接收客户端发来的参数,并传给业务逻辑层action去处理,并将从业务逻辑层接收的参数通过转发或重定向返回给客户端。
5·客户端接收到返回值显示即可。
其工作流程用时序图表示如图所示:
四:总结
前端框架MVC我们都知道,通过对servlet的学习,对比这两个,我们可以发现:其实servlet就充当着mvc中的“C”的作用,在mvc中,controller接受来自视图view的参数,然后将其传给后台处理,后台处理完了再返回给controller,controller再将返回值返回给view,呈现给用户。servlet也是一样。接受页面jsp传来的参数,然后servlet类接受并传给后台业务逻辑处理类UserManager,UserManager处理完后返回给servlet类,servlet再返回给页面jsp,并呈现给用户。大概用图来描述它们之间的关系,如图所示:
整体就是这样。初步学习servlet,理解还留在表层,随着学习的不断深入,再学习,再理解。
标签:
原文地址:http://blog.csdn.net/shiyiqijialimin/article/details/51316753