JavaWeb之Servlet与JSP

一、Servlet简介与体系结构

1、Servlet是使用Java语言编写的服务器端程序。Servlet主要运行在服务器端,并由服务器调用。

2、Servlet是单实例的,所以应该尽量少使用全局变量

在了解Servlet运行流程在之前我们先来看看请求响应的过程,在客户端与服务器开始交互的时候,客户端需要向服务器端发出请求(request),服务器端收到请求后会给客户端进行一个回应(resposne),服务器端在给客户端发送回应的时候是需要进行一些查询的,详细看一下下面这一张图

  

      客户端向Web插件发出request请求,Web插件对请求作出判断,如果请求是静态的,则直接连接到服务器,服务器对文件系统进行检索,将检索到的结果返回给服务器,最终由服务器给客户端回复一个response响应;如果是动态请求,Web插件将指向Web容器,在第一次请求时Web容器会创建Servlet实例,只进行一次实例化,实例化之后,Web容器进行代码的拼凑,然后返回给服务器,服务器根据返回过来的内容对文件系统进行检索,文件系统将检索到的结果返回给服务器,最终服务器向客户端发送response响应。


Servlet体系结构



二、Servlet实现方式

方式一:实现Servlet接口,重写其中的方法

方式二:继承GenericServlet类,重写service方法

方式三:继承HttpServlet类(常用)

      根据要求可以重写doGet(xxx)、doPost(xxx)、service(xxx)方法,如果重写了service(xxx)方法,则只执行service(xxx)方法,不执行doGet(xxx)或doPost(xxx)方法。


三、Servlet配置方式

方式一:注解配置

@WebServlet(urlPatterns={"/xxx"})

方式二:web.xml(部署描述符)配置

注意:<load-on-startup>属性的值为0或正数指明当容器启动时就加载该Servlet,值越小,优先级越高;但是当loadOnStartup的值为负数或没有此属性时则当请求该Servlet时,才加载该Servlet。


接下来我们实现一个简单的前端与后台的交互----登录

要实现前端与后台的交互则必须将项目部署到服务器中,如果不知道如何配置Tomcat服务器,可以产看我的博客https://blog.csdn.net/west_xia_616/article/details/79718267,里面是详细的配置步骤,JavaWeb项目的建立也可以查阅我的点击链接查看我的博客https://blog.csdn.net/west_xia_616/article/details/79704828,里面有详细的建立步骤,右键单击服务器,点击Add and Remove,出现如下图所示的界面


将HelloWeb项目选中,然后点击Add,则Configured的里面就会出现HelloWeb项目,点击完成之后,项目就被部署到了服务器中,然后启动服务器,在浏览器中输入:http://localhost/HelloWeb/hello/login.html,就能显示登录界面,如下图所示:


如果输入的用户名和密码符合,则会显示欢迎界面,如下图所示:


如果用户名或密码不符合则会显示失败页面,如下图所示:


原码我放在GitHub中:https://github.com/AnsrFor/web.git,有兴趣的可以进入查看,<

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于JavaWeb Servlet+JSP的量表系统可以通过以下步骤实现: 1.创建数据库表格,包括量表信息、题目信息、选项信息和用户答题记录信息等。 2.使用Servlet实现用户登录、注册、修改密码等功能。 3.使用JSP实现量表列表展示、量表详情展示、答题页面展示等功能。 4.使用ServletJSP实现用户答题记录的增加、查询、修改和删除等功能。 5.使用Bootstrap等前端框架美化页面,提高用户体验。 以下是一个简单的基于JavaWeb Servlet+JSP的量表系统的代码示例: 引用:基于JavaWeb Servlet+JSP+MYSQL+Bootstrap 文章管理系统 基于JavaWeb Servlet+JSP+MYSQL+Bootstrap 文章管理系统 基于JavaWeb Servlet+JSP+MYSQL+Bootstrap 文章管理系统 基于JavaWeb Servlet+JSP+MYSQL+Bootstrap ... 引用: ```java <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>量表详情</title> </head> <body> <h1>量表详情</h1> <table> <tr> <td>量表名称:</td> <td>${scale.name}</td> </tr> <tr> <td>量表描述:</td> <td>${scale.description}</td> </tr> <tr> <td>题目列表:</td> <td> <table> <c:forEach items="${scale.questions}" var="question"> <tr> <td>${question.content}</td> <td> <c:forEach items="${question.options}" var="option"> <input type="radio" name="${question.id}" value="${option.id}">${option.content} </c:forEach> </td> </tr> </c:forEach> </table> </td> </tr> </table> <form action="submit" method="post"> <input type="hidden" name="scaleId" value="${scale.id}"> <input type="submit" value="提交"> </form> </body> </html> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值