码迷,mamicode.com
首页 > 编程语言 > 详细

java servlet 之入门学习

时间:2016-05-06 15:53:43      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

一:什么是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);
	}
	
}

   8·改serlvet类只是接受jsp传来的参数,然后将其传给业务逻辑处理,所以,添加类:UserManager,右击我们新添加的包,依次new——class即可。类名称为:UserManager

   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,理解还留在表层,随着学习的不断深入,再学习,再理解。



java servlet 之入门学习

标签:

原文地址:http://blog.csdn.net/shiyiqijialimin/article/details/51316753

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!