java—(1)servlet示例

来源:互联网 发布:查看linux版本命令 编辑:程序博客网 时间:2024/05/20 11:23

步骤如下:

1、新建工程

      myeclipse->new->web project,起名为test_servlet.

2、编写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>    <h1>测试servlet</h1>    <hr>    <form action="servlet/TestServlet" method="post">    <input type="text" name="username"><br>    <input type="submit" value="查询"><br>    </form>  </body></html>

3、编写servlet

package com.szh.servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestServlet extends HttpServlet {/** * method是get调用doget()方法, method是post调用dopost()方法, service()方法,两种都可调用 */@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// 获得表单数据,执行业务逻辑,转发String username = req.getParameter("username");UserManager userManager = new UserManager();List userList = userManager.findUserByName("username");req.setAttribute("userlist", userList);// 在另一个页面展示要把它先存在某一个范围内,这里是request// 转向c.jsp,取出list中的数据req.getRequestDispatcher("/result.jsp").forward(req, resp);return;}}

4、业务处理类

package com.szh.servlet;import java.util.List;import java.util.ArrayList;public class UserManager {public List findUserByName(String name){ArrayList userList = new ArrayList();userList.add("1");userList.add("2");return userList;}}

5、编写result.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"pageEncoding="GB18030"%><%@ page import="java.util.*"%><!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><%List userList = (List) request.getAttribute("userlist");out.println(userList);%></body></html>

6、配置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>  <servlet>    <servlet-name>TestServlet</servlet-name>    <servlet-class>com.szh.servlet.TestServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>TestServlet</servlet-name>    <url-pattern>/servlet/TestServlet</url-pattern>  </servlet-mapping>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>

web.xml文件中的标签是由schema :web-app_2_5.xsd决定的,这个schema文件的位置在tomcat目录下。
主要配置<servlet>和<servlet-mapping>
<servlet>配置该servlet的名称和类,servlet-name名称随意,一般是类名;servlet-class是完整的包名+类名;
<servlet-mapping>配置调用servlet映射,servlet-name名称与<servlet>中配置一致;url-pattern与index.jsp中form表单的action参数一致,注意没有“/”;



分层,其实就是分职责,mvc主要是分离了数据和显示
jsp只做显示,不调用业务逻辑,粒度更细,改动更小。

Model1和Model2区别

其实就是jsp+javabean和jsp+servlet+javabean。
model1是纯jsp的,jsp页面不仅负责显示,还负责业务逻辑的处理。
mode2是一个简单的mvc,将model1的jsp分离出一个控制器servlet,jsp仅负责显示。m(javabean)、v(jsp)、c(servlet)。

model1效率高,mvc适合大型项目,一般依赖于框架,大家写的代码基本一致。



0 0