认识和熟悉Servlet
Servlet= Server+let 服务器小程序
一个Servlet就是一个服务器端的java小程序,用于处理请求,生成动态响应。
一个Servlet用于处理某种请求,如登录请求、注册请求
创建Servlet就是创建Servlet类
每个web应用程序都有一个而且只有一个全局的配置文件,叫做web.xml,用于配置程序的所有信息,如配置servlet
每个Servlet相当于一个web资源。我们通过url-pattern给它分配一个访问路径。
创建Servlet的步骤:
下面以cet查询成绩网页为例:(IDE:NetBeans)
html页面:
<!DOCTYPE html> <html> <head> <title>用户登录</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!--link元素用于引用外部样式表 rel:relation关系,该属性说明引用的文件和当前页面的关系,stylesheet说明引用的文件是当前页面的样式表 href: 指定引用的文件的路径,可以使用相对路径或绝对路径 Ctrl+\ 智能提示 --> <link rel="stylesheet" href="css/style.css"> </head> <body> <div> <!--Ctrl+/ 注释/取消注释--> <!--h1+hr+br->tab--> <h1>用户登录</h1> <hr> <br> <!--如果需要将数据提交给服务器,则必须将表单元素包含在一个表单内--> <!--form: 表单,是一个用于放置表单元素的区域--> <!--点击查询就是发送一个请求给服务器,发送了两个数据,叫做两个请求参数--> <!--id属性主要是前端使用,操作css和js的使用--> <!--需要指定元素的name属性区分参数,服务器获取参数时候根据参数名获取参数值 区分大小写 --> <!--form元素的action属性指定该表单的数据,也就是发送的请求提交给服务器的哪个组件处理--> <form action="cs"> 账号:<input type="text" name="Id"> <br><br> 密码:<input type="text" name="KeyWord"> <br><br> <!--input元素的type设置为submit则显示一个提交按钮--> <!--如果需要提交表单中的数据,必须要用提交按钮,除非你使用ajax技术发送请求--> <!--value属性指定按钮的显示文字--> <input type="submit" value="登录"> </form> </div> </body> </html>
Servelet类:
package com.qdu.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Random; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; / * 创建一个Servlet类,用于处理查询四级的请求 *
实现Servlet接口,创建一个Servlet类,实现相当于继承 * @author NIIT */
//Ctrl+Shift+I 修复导入/导包 import public class Cet4Servlet implements Servlet{
@Override public void init(ServletConfig config) throws ServletException {
//Ctrl+E 删除当前行或选中的多行 } @Override public ServletConfig getServletConfig() {
return null; } //service()方法中编写处理请求的代码 @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
//该方法接受两个参数 //第1个参数是一个请求对象,包含请求的所有信息,如请求参数 //第2个参数是一个响应对象,包含给到客户端的响应的信息,如响应内容 //这两个参数是自动传入的,service()由服务器帮你调用,我们只需要操作这两个对象即可 //request请求 //response响应 String rId = "Bert"; String rKeyWord = "666"; //1.获取请求参数 request parameter //该方法根据请求参数名获取参数值 //这里获取了参数名为studentId的参数的值,存储到id变量中 String id=req.getParameter("Id"); //Ctrl+Shift+上/下 向上/向下复制 String key=req.getParameter("KeyWord"); //Ctrl+Shift+上/下 //2.执行业务逻辑,处理请求 //Random类公开了一些方法,用于生成随机数 //Random类的方法基本都是非静态的,所以需要创建对象访问 //Random rand=new Random(); //Ctrl+Shift+I //int score=rand.nextInt(711); //nextInt(int x)用于生成0到指定值(不包含)之间的随机整数 //3.生成响应 //调用响应对象的getWriter()方法可获取一个输出响应内容到客户端的打印器 //返回一个PrintWriter对象,用于输出内容到客户端 //调用响应对象的setContentType()设置响应内容的内容类型和字符集编码 res.setContentType("text/html;charset=utf-8"); //中间是分号 PrintWriter out=res.getWriter(); if(id.equals(rId)&&key.equals(rKeyWord)){
//println()方法用于输出响应内容到客户端,可以直接输出html内容 out.println("用户登录成功
"); out.println("
"
); out.println("
欢迎登录,"
+id+"。"); } else{
out.print("用户登录失败,账号或密码错误,请重新登录。
"); } } @Override public String getServletInfo() {
//如果引用类型的返回值不知道返回什么,可以先返回null return null; } @Override public void destroy() {
} }
总之,用表单提交的数据,可以在servelet里用 req.getParameter()获取,在用res中的方法生成响应。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223506.html原文链接:https://javaforall.net
