使用Servlet和JSP开发Java应用程序 ---- 查询四六成绩

  • 1. HTML页面
  • 2. Servlet编写
  • 3. Web.xml配置,进行注册Servlet
  • 4. 完整程序的页面

1. HTML页面

目标页面

建立项目

  1. 建立Web应用程序

  2. 确定项目名称和存储位置

  3. 选择服务器,Tomcat 和 ClassFish 都可以

  4. 框架就不要选择了

  5. 在web页面中新建static文件夹,并在static文件夹中新建js文件夹,css文件夹,images文件夹,并将 bootstrap.min.css 文件放入到css文件夹中

编写基本的HTML页面

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html><head><title>四六级成绩查询</title><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body><div><!--form表示一个区域,包含了要提交的表单元素--><!--form的action属性用于指定表单提交给服务器端的那个组件处理--><form action=""><h1>四六级成绩查询</h1><hr><br><br>考号:<input type="text"><br><br>姓名:<input type="text"><br><br><button>查询</button></form></div></body>
</html>

给网页添加样式

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html><head><title>四六级成绩查询</title><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><!--先导入bootstrap文件--><link rel="stylesheet" href="static/css/bootstrap.min.css"/><style>.search-form{width: 320px;/*内边距*/padding: 30px;/*外边距*//*对于设置了宽度的元素,左右的margin为auto自动计算,使其居中显示*/margin: 150px auto;/*圆角*/border-radius: 10px;}</style></head><body><div><form action="" class="bg-primary text-center form-inline search-form"><h1>四六级成绩查询</h1><hr><br><br>考号:<input name="examId" type="text" class="form-control"><br><br>姓名:<input name="examName" type="text" class="form-control"><br><br><button class="btn btn-default">查询</button></form></div></body>
</html>

2. Servlet编写

在源包下建立java包,并在java包中建立java文件

java包的名字按照以下格式编写
com.qdu.servlet
生成的文件是分层格式

Servlet详细解释

  • 创建一个Servlet,处理根据考号和姓名查询四六级成绩的请求,生成动态响应
  • Servlet:Servlet + Applet-Java编写的服务器小程序
  • 作用:处理请求,生成动态响应
  • 可以通过实现Servlet接口来创建一个Servlet类
/** To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/
package com.qdu.servlet;import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;/**** @author dell*/
public class CetServlet implements Servlet{@Overridepublic void init(ServletConfig config) throws ServletException {}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}}

Servlet是有生命周期的
一个Servlet生命周期中有三个生命周期方法

  1. init()初始化:该方法中用于编写初始化代码,也就是准备工作对应的代码
  2. service():处理请求,在该方法中编写处理请求的代码
  3. destroy():该方法是在一个Servlet实例被摧毁前对象,执行一些诸如释放资源的功能

该方法用于编写初始化代码,也就是准备工作对应的代码

@Overridepublic void init(ServletConfig config) throws ServletException {}

该方法用于返回一个Servlet的配置信息

@Overridepublic ServletConfig getServletConfig() {return null;}

service()方法用于处理请求,所以在该方法中编写处理请求的代码
该方法接收两个参数

  1. 一个请求对象:包含了客户端发送给服务器端的请求的信息,包括请求参数等
  2. 一个响应对象:包含了服务器端发送给客户端的响应的信息,包括响应内容等

这两个参数会被传入,直接使用即可

这个地方的 ServletRequest 是一个接口
req 是服务端,res 是客户端

@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {}

从表单中获取 id 和 name

String id = req.getParameter("examId");
String name = req.getParameter("examName");

相当于前面的 bootstrap 的引入

out.println("<link rel=\"stylesheet\" href=\"static/css/bootstrap.min.css\"/>");

声明编码格式为 utf-8 主要是方便汉字的输出

res.setContentType("text/html;charset=utf-8");

这个地方为什么和 html 的书写格式相同不是很明白,不过 java 好像是支持 html 的输出的

        out.println("<div class=\"text-center text-primary\">");out.println("<h1>查询成绩</h1>");out.println("<hr>");out.println("<br>考号:" + id);out.println("<br>姓名:" + name);out.println("<br>成绩:" + score);out.println("</div>");

这个地方为了简化程序,就没有与数据库链接起来,对于成绩就直接采用的随机数

        Random rand = new Random();
//        0 - 710 随机数int score = rand.nextInt(711);
    @Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {//        1. 获取请求参数
//        ServletRequest接口的getParameter()方法可用于根据请求参数名获取请求参数值
//        所有的请求参数都是以字符串提交的,如果需要转换类型,需要自行转换
//        Ctrl + Shift + 下 向下复制String id = req.getParameter("examId");String name = req.getParameter("examName");
//        2. 处理请求:根据考号和姓名查询成绩
//        为了简化程序,这里不走数据库,用一个随机数表示查询到的成绩Random rand = new Random();
//        0 - 710 随机数int score = rand.nextInt(711);
//        3. 生成动态响应res.setContentType("text/html;charset=utf-8");PrintWriter out = res.getWriter();out.println("<link rel=\"stylesheet\" href=\"static/css/bootstrap.min.css\"/>");out.println("<div class=\"text-center text-primary\">");out.println("<h1>查询成绩</h1>");out.println("<hr>");out.println("<br>考号:" + id);out.println("<br>姓名:" + name);out.println("<br>成绩:" + score);out.println("</div>");}

3. Web.xml配置,进行注册Servlet

通过上面两步,已经将 html 和 servlet 编写好了,但是还没有将 html 和servlet 链接起来,也没有对 servlet 进行配置

对servlet进行注册

新建标准部署描述符(web.xml)

web.xml文件是一个web程序的全局配置文件
用于配置web程序的全局信息,包括会话配置,欢迎页面,Serclet等组件的注册
程序启动的时候,第一加载的就是web.xml文件,如果该文件有错,那么程序就无法启动

这里直接自动生成即可,具体的代码下面会进行解释

创建一个Servlet之后,需要注册该servlet,然后servlet才能被访问
相当于将一个servlet注册为一个web资源,可以通过一个url来访问该servlet

servlet元素用于指定一个servlet的基本信息,包括名称,类名,描述等

<servlet><description>四六级查询请求</description><!--servlet-name用于指定Servlet的名称,可以随意命名,同城做法是使用首字母小写的类名--><servlet-name>cetServlet</servlet-name><!--servlet-class元素用于指定Servlet的全限定类名,也就是包名.类名--><servlet-class>com.qdu.servlet.CetServlet</servlet-class></servlet>

map 映射
servlet-mapping 元素用于指定Servlet的映射信息,也就是可以使用什么样的url来访问这个servlet

<servlet-mapping><!--这地方的名字要上面的一致--><servlet-name>cetServlet</servlet-name><!--一个servlet的url-pattern可以指定一个或多个,如果是多个的话用/分开--><url-pattern>/cs</url-pattern></servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"><servlet><description>四六级查询请求</description><servlet-name>cetServlet</servlet-name><servlet-class>com.qdu.servlet.CetServlet</servlet-class></servlet><servlet-mapping><servlet-name>cetServlet</servlet-name><url-pattern>/cs</url-pattern></servlet-mapping><session-config><session-timeout>30</session-timeout></session-config>
</web-app>

配置好了的话,在地址栏中输入对应的 url 就可以直接访问
可以用这个方法来查看是否已经配置正确了

将 html 和 servlet 链接起来

前面的 form 表单中有一个 action 元素,将 action 元素后面的参数改成对应的 url 就可以了

这个地方就不需要加 / 了

4. 完整程序的页面


最后祝大家四六级都可以取得一个好成绩!!!

使用Servlet和JSP开发Java应用程序 ---- 查询四六成绩相关推荐

  1. 使用Servlet和JSP开发Java应用程序 ----错误处理

    使用Servlet和JSP开发Java应用程序 ----错误处理 错误和异常处理 配置错误页面 针对异常配置错误页面 使用 Servlet 配置错误页面 自己指定发送的状态代码 setStatus() ...

  2. 使用Servlet和JSP开发Java应用程序 ---- 简单模拟天猫购物页面

    使用Servlet和JSP开发Java应用程序 ---- 简单模拟天猫购物页面 1. 加载 jar 包 2. 使用URL重写参数 3. 编写 ProductServlet 4. 在 productIn ...

  3. java应用程序如何编译运作_开发Java应用程序的基本步骤是: 1 编写源文件, 2.编译源文件, 3.运行程序。_学小易找答案...

    [判断题]Java源文件中只能有一个类. [简答题]任务32:开关电源PCB 设计.docx [多选题]企业的收入具体表现为一定期间: [简答题]任务33:CPLD逻辑电路自制元件与封装.docx [ ...

  4. 在QNX平台上开发Java应用程序 (更新版) 2004年写的呢

    原文标题:在QNX平台上开发Java应用程序 (更新版) By qyjohn, September 6, 2004 5:20 am 原文网址:http://www.qyjohn.net/?p=224 ...

  5. javaweb基于JSP开发Java在线学习平台 大作业 毕业设计源码

    基于JSP开发Java在线学习平台:(毕业设计/大作业) 开发环境:    Windows操作系统 开发工具: MyEclipse+Jdk+Tomcat+MYSQL数据库 运行效果图: 基于JSP开发 ...

  6. java netbeans 教程_netbeans开发java GUI程序 详细教程.pdf

    构建 GUI 应用程序简介 撰稿人:Saleem Gul 和 Tomas Pavek 本入门教程讲述如何创建简单图形用户界面以及如何添加简单后端功能.尤其介绍了如何为 Swing 窗体中的按钮和字段行 ...

  7. 【JSP教科书】JSP知识在线指南(记录知识JSP体系、EL表达式、JSTL标签库、JSP开发模型和分页查询)

    文章目录 @[toc] 一.JSP简介 1.1 什么是JSP? 1.2 JSP的特点 1.3 JSP为什么也是Servlet 1.4 tomact服务器中的资源分析 1.4.1 tomact服务器中的 ...

  8. byfen网java_用java编写程序根据考试成绩的等级打印出百分制分数段

    用java编写程序,根据考试成绩的等级打印出百分制分数段:设A为90分以上,B为80分以上,C为70分以上,D为60分以上,E为59分以下.要求在程序中使用开关语句.上级运行其结果是否符合设计要求: ...

  9. 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥...

    前几天,有一个已经有2年不做程序开发的大哥,购买了一套我的程序,其实这个大哥的水平也很厉害,但是由于有1-2年没做开发工作,以前的积累也都放弃了,现在可能是客户找他开发应用程序,要求的时间也比较短,所 ...

最新文章

  1. 世界上第一台电子计算机到底是谁发明的?
  2. kotlin 类及其成员的可见性
  3. 【C 语言】字符串模型 ( strstr-while 模型 )
  4. python自动化部署程序,聊聊Python自动化脚本部署服务器全流程(详细)
  5. 并查集(浓缩的精华模版!!!!)
  6. Ubuntu 14.04下安装Redis报错:“You need tcl 8.5 or newer in order to run the Redis test”问题解决
  7. 马上开课 | 第 3 期临床基因组家系分析,助力发表Case Report
  8. TOMCAT内存溢出问题
  9. 最新Discuz验证码和PhpWind验证码的识别
  10. jquery中attr() 和 prop()的区别
  11. 关于 myeclipse 里面没有 add hibernate capabilities 问题解决方法
  12. python xml第三方库_我应该使用哪个python XML库?
  13. matlab由滤波的系数得到传输函数 设计带通滤波器 design fdatool设计IIR带通滤波器
  14. android home键流程分析
  15. 美国通胀“爆表”要加息100点?
  16. 椭圆曲线加密与NSA后门考古
  17. 关于Retrofit用法
  18. 计算机课程思政元素,《数据结构》课程思政元素的设计
  19. 通信原理 实验:加入m序列、扰码、扩频、卷积码以及维特比译码功能的数字基带系统仿真
  20. 动手DIY一个underscorejs库及underscorejs源码分析1

热门文章

  1. Fabric CA官方文档翻译——Planning for a CA
  2. 销售报表案例--如何应用Excel创建销售漏斗分析仪
  3. 配置 OpenStack 命令 自动 补全
  4. 【拓扑学知识】4.拓扑性质--分离公理与可数公理(分离性和可数性)
  5. iOS9 3D Touch 标签菜单 peek and pop force 压力触控 功能开发高级版教程
  6. 字符串中包含unicode编码内容转中文打印或输出到txt文件
  7. python三角形判断_python三角形判定怎么做
  8. Java POI导出(图片,文字,表格)word文档
  9. win7网络上计算机进不去,Win7电脑开机进不了系统怎么办?
  10. 2022-09-16 蒟蒻の模拟赛之Summary