`

Java Web快速入门——第4讲

阅读更多

1、对Servlet的理解

    Servlet是一种Java类。
    Servlet能够完成与JSP相同的功能。能够接收用户的请求,能够调用功能类的方法,可以对用户进行响应。
    Servlet和JSP同属于Java EE中Web层组件。

2、如何编写一个Servlet

    假设:该Servlet的功能为显示欢迎信息。

    Java文件的编写过程:(1)声明包 (2)引入用到的其他的类 (3)类的编写
    对于类:(1)类头——修饰符 class关键字 类名 继承父类 实现接口
            (2)类体——成员变量 构造方法 对属性进行操作的方法 功能类方法
    对于成员变量:修饰符 类型 变量名(对象名)
    对于方法(不包括构造方法):修饰符 返回值类型 方法名 参数列表 异常列表 方法体
    对于方法体:变量的声明 各种运算 调用其他的方法 返回结果

    (1)声明包,假设包名为servlet

package servlet;

    (2)引入用到的类,javax.servlet.* javax.servlet.http.* java.io.*
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

    (3)类头的定义
    访问控制符:public
    类名:HelloServlet
    继承父类:javax.servlet.http.HttpServlet
    实现接口:没有要实现的接口

public class HelloServlet extends HttpServlet

    (4)方法的定义
    主要的方法:init方法(用于初始化) destroy方法(释放资源) doGet或者doPost(完成主要功能)
    通常主要实现doGet方法或者doPost方法,分别对应客户端的get请求和post请求。


public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
    // 设置编码方式
    response.setContentType("text/html;charset=gb2312");
    // 得到输出流对象
    PrintWriter out = response.getWriter();
    out.println("欢迎学习JSP!");
}

public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
   doGet(request,response);
}

3、编译存放

   需要用到javax.servlet.*和javax.servlet.http.*,两个包的实现在tomcat下面的lib中,名字为servlet-api.jar。
   放在(编译后的Servlet):WEB-INF/classes
   配置path: 把C:\Program Files\Java\jdk1.6.0\bin添加到path中,但是不能破坏原有的路径。
   配置classpath:把C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar;添加到classpath中。
   编译:在命令行方式下进入到classes目录,然后使用 javac -d . HelloServlet.java   -d表示生成包的路径,.表示在当前位置生成。

4、配置Servlet
   配置文件及位置:WEB-INF下面的web.xml。
   配置包括两个方面:Servlet的声明 以及 Servlet访问方式的声明
   Servlet的声明:
   <servlet>
      <servlet-name>hello</servlet-name>
      <servlet-class>servlet.HelloServlet</servlet-class>
   </servlet>
  
   其中,<servlet-name>表示这个servlet的名字,可以随便起。<servlet-class>是对应的Servlet类,应该包含包的信息。

   Servlet访问方式的声明:
   <servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>/hello</url-pattern>
   </servlet-mapping>
   其中,<servlet-name>和Servlet声明中的用法相同,并且应该与Servlet声明中的名字保持一致。<url-pattern>表示访问方式,决定了在客户端如何访问这个Servlet。

5、访问Servlet
   http://127.0.0.1:8080/bookstore/hello

6、用Servlet完成login_process.jsp的功能
    login_process.jsp主要功能,判断用户输入的用户名和口令是否合法,然后根据判断的结果选择界面对用户响应。
    对于JSP文件来说,优势在于显示信息,login_process.jsp中的代码都不是显示信息的,主要用于控制。在Java Web应用中存在大量的这种现象。是Java Web中的控制功能。主要使用Servlet完成控制。
    login_process.jsp的基本功能:获取用户的输入信息;进行判断;转向。
    如果使用Servlet完成,功能代码应该写在doGet或者doPost方法中。对应上面的3个功能分别实现如下:
    获取用户信息:用户信息存储在doGet或者doPost方法的第一个参数中,所以从参数中获取,获取的代码为
        String username = request.getParameter("username");
        String userpass = request.getParameter("userpass");
    判断:
        if( username.equals("zhangsan") && userpass.equals("zhangsan") )
    转向响应界面:
        第一种方式:response.sendRedirect("index.jsp");
        第二种方式:与<jsp:forward>功能相同
        RequestDispatcher rd = request.getRequestDispatcher("index.jsp");  // 参数是要转向的页面
        rd.forward(request,response); // 完成跳转

LoginProcessServlet.java代码如下:

package servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class LoginProcessServlet extends HttpServlet
{
  public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
  {
        // 获取用户输入的信息
        String username = request.getParameter("username");
        String userpass = request.getParameter("userpass");

        if( username.equals("zhangsan") && userpass.equals("zhangsan") )
        {
           RequestDispatcher rd = request.getRequestDispatcher("success.jsp");  // 跳转到成功的页面
           rd.forward(request,response); // 完成跳转
        }else
        {
           RequestDispatcher rd = request.getRequestDispatcher("index1.jsp");  // 跳转到登录页面
           rd.forward(request,response); // 完成跳转
        }
  }

  public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
  {
     doGet(request,response);
  }

}

配置文件中添加如下代码:
   <servlet>
      <servlet-name>login_process</servlet-name>
      <servlet-class>servlet.LoginProcessServlet</servlet-class>
   </servlet>

   <servlet-mapping>
      <servlet-name>login_process</servlet-name>
      <url-pattern>/login_process</url-pattern>
   </servlet-mapping>

修改index1.jsp的代码(修改form所在行),修改前:
<form action="login_process.jsp" method="post">
修改后:
<form action="login_process" method="post">

分享到:
评论

相关推荐

    Java Web快速入门——全十讲

    ### Java Web快速入门——全十讲 #### 一、Java与Web开发的融合:JavaEE标准框架 在探讨Java Web开发之前,我们首先要理解Java在Web领域的定位。Java不仅仅是一种编程语言,它还是一套完整的生态系统,适用于各种...

    Java_Web快速入门——全十讲

    以上是对“Java_Web快速入门——全十讲”的部分知识点进行了详细的总结,这些知识点涵盖了 Java Web 技术的基础概念、核心技术和实践应用,对于初学者来说是非常宝贵的参考资料。接下来的几讲会继续深入探讨更高级的...

    JSP快速入门教程——全十讲

    本教程“JSP快速入门教程——全十讲”旨在帮助初学者快速掌握JSP的基础知识和应用技巧。 **第一讲:JSP简介** JSP是由Sun Microsystems公司推出的动态网页技术,它是Java Servlet技术的扩展。JSP与Servlet的关系...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...

    Android编程快速入门——字节跳动.pptx

    Android 编程快速入门 Android 简介 Android 是一个基于 Linux 的自由及开放源代码的操作系统,主要用于移动设备such as smartphones and tablet computers。 Android 的前世今生可以追溯到 1989 年,安迪鲁宾加入...

    整理 JSP快速入门教程——全十讲.chm

    第四讲 1、对Servlet的理解 Servlet是一种Java类。 Servlet能够完成与JSP相同的功能。能够接收用户的请求,能够调用功能类的方法,可以对用户进行响应。 Servlet和JSP同属于Java EE中Web层组件。 2、如何编写一...

    ASP.NET4入门经典——涵盖C#和VB.NET(第6版)

    ### ASP.NET4 入门经典——涵盖C#和VB.NET(第6版) #### ASP.NET4简介 ASP.NET4是Microsoft推出的一种用于构建动态Web应用程序的技术框架,它为开发人员提供了一个强大的平台来创建高性能、高可靠性的Web应用。与...

    Java Web入门经典第二章源代码

    全书共分4篇19章,其中,第一篇为“起步篇”,主要包括开启Java Web之门、不可不知的客户端应用技术、驾驭Java Web开发环境、Java Web开发必修课之JSP语法等内容;第二篇为“核心篇”,主要包括程序开发效率之利器...

    《Java高手真经:Java Web高级开发技术》读书笔记模板.pptx

    * 第4课:会话Bean(Session Bean)——发布JNDI服务 + 无状态会话Bean(Stateless Session Bean) + 有状态会话Bean(Stateful Session Bean) + 会话Bean扩展开发 * 第5课:消息驱动Bean(Message-Driven Bean...

    深入体验Java Web开发内幕

    【内容简介】  本书深刻且通俗地揭示Java Web开发内幕,使您由内而外地明白使用Java进行Web应用开发的全过程——从XML基础知识到HTTP详述及相关体验,从用Tomcat配置Web站点到HttpServletResponse和...

    《java web编程宝典-十年典藏版》 源码

    《Java Web编程宝典——十年典藏版》是一本深入探讨Java Web开发的权威书籍,其源码提供了丰富的实例,帮助读者深入理解并实践相关技术。这本书覆盖了从基础到高级的Java Web开发各个方面,包括Servlet、JSP、Java...

    重磅!《Go Web编程实战派从入门到精通》随书源码开源啦,Go语言-Web-goWebActualCombat.zip

    《Go Web编程实战派从入门到精通》是一本专注于Go语言在Web开发领域的专著,其开源的随书源码库名为"Go语言-Web-goWebActualCombat",压缩包内的主要内容是goWebActualCombat-master目录,这代表了一个完整的Go语言...

    云应用开发 ——Google App Engine & Google Web Toolkit入门指南

    ### 云应用开发 ——Google App Engine & Google Web Toolkit入门指南 #### 第1章 应该了解下 ##### 1.1 云基本知识 云计算是一种通过互联网提供按需计算资源和服务的方式,包括网络、服务器、存储、应用程序和...

    JAVA入门教程21天学通JAVA2第三版

    ### JAVA入门教程21天学通JAVA2第三版——关键知识点解析 #### 一、JAVA入门书籍推荐 - **《Java语言》**:适合初学者,全面覆盖Java基础语法及面向对象的基本概念。 - **《Thinking in Java》**:虽然内容深入且...

    Java基础入门教程

    还会介绍如何编写并运行第一个Java程序——经典的"Hello, World!"示例。 3. **JAVA基本程序实践**:在理论知识的基础上,这部分将深入到实际编程中,涵盖类和对象的概念,这是面向对象编程的基础。学习者会了解如何...

    JSF入门必读——JSF入门基础

    JavaScript Server Faces(JSF)是Java平台上用于构建Web应用程序的一种框架,它旨在简化Web开发,尤其是在处理用户界面和服务器端逻辑交互方面。JSF的核心设计理念是通过组件模型、事件驱动和声明式编程来抽象出...

    真正的Java学习从入门到精通

    ### 知识点详解:Java学习之路——从入门到精通 #### 一、工具篇:JDK —— Java的核心 **JDK (Java Development Kit)**是Java开发的基础,包含了Java运行环境(JRE),一系列Java工具,以及Java基础的类库(rt.jar)...

Global site tag (gtag.js) - Google Analytics