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开发的融合:JavaEE标准框架 在探讨Java Web开发之前,我们首先要理解Java在Web领域的定位。Java不仅仅是一种编程语言,它还是一套完整的生态系统,适用于各种...
以上是对“Java_Web快速入门——全十讲”的部分知识点进行了详细的总结,这些知识点涵盖了 Java Web 技术的基础概念、核心技术和实践应用,对于初学者来说是非常宝贵的参考资料。接下来的几讲会继续深入探讨更高级的...
本教程“JSP快速入门教程——全十讲”旨在帮助初学者快速掌握JSP的基础知识和应用技巧。 **第一讲:JSP简介** JSP是由Sun Microsystems公司推出的动态网页技术,它是Java Servlet技术的扩展。JSP与Servlet的关系...
共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、...
Android 编程快速入门 Android 简介 Android 是一个基于 Linux 的自由及开放源代码的操作系统,主要用于移动设备such as smartphones and tablet computers。 Android 的前世今生可以追溯到 1989 年,安迪鲁宾加入...
第四讲 1、对Servlet的理解 Servlet是一种Java类。 Servlet能够完成与JSP相同的功能。能够接收用户的请求,能够调用功能类的方法,可以对用户进行响应。 Servlet和JSP同属于Java EE中Web层组件。 2、如何编写一...
### ASP.NET4 入门经典——涵盖C#和VB.NET(第6版) #### ASP.NET4简介 ASP.NET4是Microsoft推出的一种用于构建动态Web应用程序的技术框架,它为开发人员提供了一个强大的平台来创建高性能、高可靠性的Web应用。与...
全书共分4篇19章,其中,第一篇为“起步篇”,主要包括开启Java Web之门、不可不知的客户端应用技术、驾驭Java Web开发环境、Java Web开发必修课之JSP语法等内容;第二篇为“核心篇”,主要包括程序开发效率之利器...
* 第4课:会话Bean(Session Bean)——发布JNDI服务 + 无状态会话Bean(Stateless Session Bean) + 有状态会话Bean(Stateful Session Bean) + 会话Bean扩展开发 * 第5课:消息驱动Bean(Message-Driven Bean...
【内容简介】 本书深刻且通俗地揭示Java Web开发内幕,使您由内而外地明白使用Java进行Web应用开发的全过程——从XML基础知识到HTTP详述及相关体验,从用Tomcat配置Web站点到HttpServletResponse和...
《Java Web编程宝典——十年典藏版》是一本深入探讨Java Web开发的权威书籍,其源码提供了丰富的实例,帮助读者深入理解并实践相关技术。这本书覆盖了从基础到高级的Java Web开发各个方面,包括Servlet、JSP、Java...
《Go Web编程实战派从入门到精通》是一本专注于Go语言在Web开发领域的专著,其开源的随书源码库名为"Go语言-Web-goWebActualCombat",压缩包内的主要内容是goWebActualCombat-master目录,这代表了一个完整的Go语言...
### 云应用开发 ——Google App Engine & Google Web Toolkit入门指南 #### 第1章 应该了解下 ##### 1.1 云基本知识 云计算是一种通过互联网提供按需计算资源和服务的方式,包括网络、服务器、存储、应用程序和...
### JAVA入门教程21天学通JAVA2第三版——关键知识点解析 #### 一、JAVA入门书籍推荐 - **《Java语言》**:适合初学者,全面覆盖Java基础语法及面向对象的基本概念。 - **《Thinking in Java》**:虽然内容深入且...
还会介绍如何编写并运行第一个Java程序——经典的"Hello, World!"示例。 3. **JAVA基本程序实践**:在理论知识的基础上,这部分将深入到实际编程中,涵盖类和对象的概念,这是面向对象编程的基础。学习者会了解如何...
JavaScript Server Faces(JSF)是Java平台上用于构建Web应用程序的一种框架,它旨在简化Web开发,尤其是在处理用户界面和服务器端逻辑交互方面。JSF的核心设计理念是通过组件模型、事件驱动和声明式编程来抽象出...
### 知识点详解:Java学习之路——从入门到精通 #### 一、工具篇:JDK —— Java的核心 **JDK (Java Development Kit)**是Java开发的基础,包含了Java运行环境(JRE),一系列Java工具,以及Java基础的类库(rt.jar)...