Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

Servlet 三大域对象

对象类型 对象名称 范围 备注
HttpServletRequest request 一次请求内有效 servlet的域对象
HttpSession session 一次会话范围内有效 servlet的域对象
会话(打开浏览器访问服务器,直到关闭浏览器)
ServletContext application 整个web工程范围内都有效 servlet的域对象
工程(只要web工程不停止,数据都在)

注意:只关闭标签页的话,session状态是还在的。要完全关闭浏览器后,重新打开才会启用新的session。

session有自身的生命周期,如一定的时间内不再激活的话就会过期,被服务器注销。

Servlet 容器

servlet 容器(tomcat)中有很多 servlet 程序

Java Servlet(Java服务器小程序)是一个基于 Java 技术的 Web 组件,运行在服务器端,它由 Servlet 容器所管理,用于生成动态的内容,Servlet 是平台独立的 Java 类,编写一个 Servlet,实际上就是按照 Servlet 规范编写一个 Java 类。Servlet 被编译为平台独立的字节码,可以被动态地加载到支持 Java 技术的 Web 服务器中运行。 Servlet没有 main() 方法,不能独立运行,它必须被部署到 Servlet 容器中,由容器来实例化和调用 Servlet 的方法(如 doGet() 和 doPost()),Servlet 容器在 Servlet 的生命周期内包容和管理 Servlet。

Servlet 容器也叫做 Servlet 引擎,是 Web 服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于 MIME 的请求,格式化基于 MIME 的响应。

Tomcat 是一个免费的开放源代码的 Servlet 容器,目前比较流行的 Web 服务器。


servlet 是小服务器程序,写后端服务器端用的;而 JSP 是模板引擎,显示前端用的。

其实,Tomcat 访问任何的资源都是在访问 Servlet!当然了,JSP 也不例外!JSP 本身就是一种 Servlet。为什么我说 JSP 本身就是一种 Servlet 呢?其实 JSP 在第一次被访问的时候会被编译为 HttpJspPage 类(该类是 HttpServlet 的一个子类)

JSP 是为了简化 Servlet 的工作出现的替代品,Servlet 输出 HTML 非常困难,JSP 就是替代 Servlet 输出 HTML 的。

jsp 就是在 html 里面写 java 代码,servlet 就是在 java 里面写 html 代码…其实 jsp 经过容器解释之后就是 servlet。只是我们自己写代码的时候尽量能让它们各司其职,jsp 更注重前端显示,servlet 更注重模型和业务逻辑。不要写出万能的 jsp 或 servlet 来即可。

Servlet 应用

servlet 主要就是处理页面传过来的表单数据,页面上的 form 的 action 指向到 web.xml 中,然后在 XML 中对称节点中找到对应的 servlet 类去执行你的处理方法.

servlet 中使用 HttpServletRequest 和 HttpServletResponse 来接受和返回数据

这个类要继承一个 HttpServlet 类然后重写他的 doGet 和 doPost 方法,一般在 doGet 里 this.doPost(req,resp); 然后具体的代码在 doPost() 方法中执行。

Servlet

一个登陆的小例子,这个是 Servlet.

package com.wangchao.action;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.wangchao.bo.AdminBO;
import com.wangchao.service.SfInfoService;
import com.wangchao.service.SfInfoServiceImpl;
public class LoginAction extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
String name = "";
String pass = "";
SfInfoService loginser;
AdminBO bo;
boolean istrun;
PrintWriter pw;
public LoginAction(){
loginser = new SfInfoServiceImpl();
bo = new AdminBO();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
name = req.getParameter("username");
pass = req.getParameter("password");
bo.setName(name);
bo.setPassword(pass);
istrun = loginser.userLogin(bo);
pw = resp.getWriter();
if(istrun){
req.setAttribute("name", name);
req.setAttribute("pass", pass);
req.getRequestDispatcher("admin/user_info.jsp").forward(req, resp);
// resp.sendRedirect("admin/MyJsp.jsp");
}else{
pw.print("<h3>用户名或密码错误,点击<a href='admin/index.jsp'>返回</a></h3>");
pw.flush();
}
}
}

web.xml

下面是 web.xml

在 web.xml 中配置 servlet 的映射。

要配置 servlet 的名称以及对应的类,还有名称以及对应的url样式映射。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.wangchao.action.LoginAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login.do</url-pattern>
</servlet-mapping>
</web-app>

JSP

以下为 JSP 页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<div align="center">
<form action="login.do" method="post">
用户名:<input type="text" name="username" style="color: red"><br><br>
密  码:<input type="password" name="password" style="color: green"><br><br>
<div align="center">
<input type="submit" value="登陆"> <input type="reset" value="重填">
</div>
</form>
</div>
</body>
</html>

【Web】Servlet基本概念的更多相关文章

  1. 一、HTML概述 二、web相关的概念 三、HTML的常用标签

    一.HTML概述###<1>概念 HTML:Hypertext Markup Language,超文本 标记语言,用来描述网页的一种语言. 非编程语言,由浏览器直接解释运行. ###< ...

  2. org.springframework.web.servlet.DispatcherServlet noHandlerFound

    1 请求URL: http://localhost:8080/mvc/rojas 2 control  RequestMapping  : @RequestMapping(value="xx ...

  3. servlet有关概念

    关于servlet的概念 URL.URN与URi HTTP GET请求,POST请求(区别.适用) 编码 动态网页(GCI.PHP.ASP.JSP等)与静态网页 Model2 静态网页:指的是请求服务 ...

  4. 静态资源[org.springframework.web.servlet.PageNotFound]

    springmvc 无法访问js.css.jpg等资源文件,tomcat启动报警告如下 [org.springframework.web.servlet.PageNotFound] - No mapp ...

  5. org.springframework.web.servlet.PageNotFound No mapping found for HTTP request with URI [/AssetRepair/assetRepairController/test.do] in DispatcherServlet with name 'assetrepair'

    web.xml文件配置: xxx-servlet.xml 我们可以发现DispatcherServlet会处理"jsp"后缀的请求;而模型视图后缀也是jsp的 如果这样配置会报以下 ...

  6. org.springframework.web.servlet.view.InternalResourceViewResolver

    http://blog.csdn.net/superdog007/article/details/28857495 我们在controller里面经常这样return一个ModelAndView: r ...

  7. springmvc报错 org.springframework.web.servlet.DispatcherServlet

    在写springMVC时,导入所有需要的包后,运行程序,控制台报以下错误: 严重: Servlet [springDispatcherServlet] in web application [/Spr ...

  8. maven web 项目中启动报错 Java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

    主要原因是maven项目里面的jar包吗,没有导入到项目中 maven web 项目中启动报错 Java.lang.ClassNotFoundException: org.springframewor ...

  9. NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.web.servlet.view.InternalResourceViewResolver' available

    问题描述: 项目中需要配置多个视图解析器,所以使用ContentNegotiatingViewResolver来处理,在其内部设置了FreeMarkerViewResolver .InternalRe ...

  10. org.springframework.web.servlet.PageNotFound

    2017-07-11 16:36:13.489 WARN [http-nio-8032-exec-16]org.springframework.web.servlet.PageNotFound -Re ...

随机推荐

  1. Windows下的GDAL环境配置

    Windows下的GDAL环境配置 在Windows下GDAL环境的配置方式有很多种,我尝试了很多不同的配置方式,包括Anaconda. GISInternals.QGIS.OSGeo4W等, 我这里 ...

  2. 在 ASP.NET Core WebAPI如何实现版本控制?

    在 ASP.NET Core WebAPI 中实现版本控制(Versioning)是一种常见的做法,用于管理 API 的演进和兼容性.通过版本控制,我们可以在不破坏现有客户端的情况下引入新功能或修改现 ...

  3. springboot-权限控制shiro

    1. 场景描述 (1)权限控制是IT项目特别是企业项目,绕不开的重要模块,接下来结合springboot介绍下权限控制框架shiro. (2)springboot集成shiro的东西有点多,一篇博客完 ...

  4. Tesseract-OCR使用有感

    这玩意儿就只有一个Tesseract.dll 就算有其它的加上x64目录下的另外两个dll leptonica-1.80.0.dll  tesseract41.dll也不过几兆而已,但是 但是 但是 ...

  5. 从整理扑克牌到字母异位词分组:一道巧妙的排序应用题 |LeetCode 49 字母异位词分组

    LeetCode 49 字母异位词分组 点此看全部题解 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中) 生活中的算法 你有没有玩过扑克牌?打完一局之后,我们通常会把散落的牌收 ...

  6. 概率学习(Genshin中)

    目前待补充:停时定理的部分例题. 定义 首先定义样本空间 \(\Omega\),是所有样本点(结果)的集合. 随机事件 \(A\) 是样本空间的子集. 定义事件和为事件并,积为事件交. 事件域 \(\ ...

  7. 我的世界服务端插件安装 Vault经济前置插件安装(商店,圈地等需要该前置插件)

    Minecraft服务端插件安装-Vault用户登录插件安装 需要准备Vault插件 Vault.jar经济前置插件 Minecraft Vault插件是一款用于Minecraft服务器的多功能经济. ...

  8. 洛谷B4038 [GESP202409 三级] 平衡序列 题解

    原题传送门 前言 当我以一种十分激动的心情参加了GESP的2024-9的三级考试时. 打开了此题,然后--自以为是的拿着暴力一顿乱写!然后TLE. 直到结束我还是没有想出来! (太菜了!!!) 以一种 ...

  9. 天线的OTA测试

    有源测试 (即OTA测试) 把使用综测仪的测试叫做有源测试(Active).使用有源测试的测试速度比较无源相对要慢,但是因为手机是一个复杂材料体,往往无源测试对发射性能的模拟是可信的,但是对于接收性能 ...

  10. PowerJob:一款强大且开源的分布式调度与计算框架

      项目名称:PowerJob 项目作者:假诗人 开源许可协议:Apache-2.0 项目地址:https://gitee.com/KFCFans/PowerJob 项目简介 PowerJob(原Oh ...