1. 简单实例

    • 页面请求登陆,提交表单数据
<body>

    <form action="loginServlet" method="get">
user:<input type="text" name="user"/>
<br>
password:<input type="password" name="password"/>
<br>
interesting:
<input type="checkbox" name="interesting" value="read"/>read
<input type="checkbox" name="interesting" value="walk"/>walk
<input type="checkbox" name="interesting" value="swing"/>swing
<input type="checkbox" name="interesting" value="shopping"/>shopping
<input type="checkbox" name="interesting" value="tv"/>TV
<br>
<input type="submit" value="Submit"/>
</form>
</body>
  • web.xml配置文件
  <servlet>
<servlet-name>loginServlet</servlet-name>
<servlet-class>servlet.loginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
  • loginServlet实现Servlet接口,用于处理登陆请求
public class loginServlet implements Servlet {

    @Override
public void destroy() { } @Override
public ServletConfig getServletConfig() {
return null;
} @Override
public String getServletInfo() {
return null;
} @Override
public void init(ServletConfig arg0) throws ServletException { } @Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
System.out.println("请求来了...");
//获取指定参数名的参数值
String user = request.getParameter("user");
String password = request.getParameter("password");
System.out.println(user + ", " + password); String interest = request.getParameter("interesting");
System.out.println(interest); //获取指定参数名的一组参数值
String [] values = request.getParameterValues("interesting");
for(String value : values){
System.out.println("--"+value);
} //获取Enumeration对象
Enumeration<String> names = request.getParameterNames();
while(names.hasMoreElements()){
String name = names.nextElement();
String value = request.getParameter(name);
System.out.println("^^" + name + ":" + value);
} //获取参数值的键值对
Map<String, String[]> map = request.getParameterMap();
for(Map.Entry<String, String[]> entry : map.entrySet()){
System.out.println("**" + entry.getKey() + ": " + Arrays.asList(entry.getValue()));
} //获取请求的URI
HttpServletRequest httpServletRequest = (HttpServletRequest)request;
String requestURI = httpServletRequest.getRequestURI();
System.out.println("requestURI:" + requestURI); //获取请求的方式
String method = httpServletRequest.getMethod();
System.out.println("请求方式:" + method); //获取请求的查询字符串(当然请求方式为get,否则哪来的请求参数)
String queryString = httpServletRequest.getQueryString();
System.out.println("查询字符串:" + queryString); //获取Servlet的映射路径,就是配置在web.xml中的配置信息
String servletPath = httpServletRequest.getServletPath();
System.out.println("servletPath:" + servletPath); //返回响应类型
response.setContentType("application/msword"); //返回响应信息
PrintWriter out = response.getWriter();
out.println("helloWorld");
} }
  • 获取到表单提交的数据
请求来了...
tengpengfei, 817425
read
--read
--walk
^^user:tengpengfei
^^password:817425
^^interesting:read
**user: [tengpengfei]
**password: [817425]
**interesting: [read, walk]
requestURI:/Demo4_servlet/loginServlet
请求方式:GET
查询字符串:user=tengpengfei&password=817425&interesting=read&interesting=walk
servletPath:/loginServlet
  • 问题

因为继承Servlet从而必须实现接口中所有的方法,但有些方法

用不到,就会产生多余代码,为了解决这个问题,可以自己定义一个Servlet

Servlet(4)—一个简单的Servlet实例的更多相关文章

  1. 在cmd下编译一个简单的servlet时出现程序包javax.servlet不存在

    由于servlet和JSP不是Java平台JavaSE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置. 解决“软件包 javax.servlet不存 ...

  2. Tomcat剖析(二):一个简单的Servlet服务器

    Tomcat剖析(二):一个简单的Servlet服务器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三) ...

  3. 一个简单的servlet容器

    [0]README 0.1)本文部分文字转自 “深入剖析Tomcat”,旨在学习  一个简单的servlet容器  的基础知识: 0.2)for complete source code, pleas ...

  4. Servlet复习1: 一个简单的Servlet的使用

    Servlet学习 1. Servlet与JSP的关系 2. Servlet的声明周期 3. 一个简单的Servlet的使用方法 什么是Servlet? 什么又是JSP? 继承了javax.servl ...

  5. 开发部署一个简单的Servlet

    Servlet是一个执行在服务器端的Java Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet Engline路径下.Servlet ...

  6. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)(代码篇)

    这篇是上一篇的延续: 用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 源代码在github上可以下载,地址:https://github.com/guoxia ...

  7. Java Tread多线程(0)一个简单的多线程实例

    作者 : 卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/39341887 本文演示,一个简单的多线程实例,并简单分析一下线程. 编程多 ...

  8. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(三)(错误整理篇)

    使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二) 以上两篇已经把流 ...

  9. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)

    梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...

随机推荐

  1. Tomcat模型结构

    一.请求过程 Tomca的两大组件:Connecter和Container Connecter组件 1.Connecter将在某个指定的端口上侦听客户请求,接收浏览器的发过来的 tcp 连接请求,创建 ...

  2. Python_tuple部分功能介绍

    x.count():元素在元组内的个数 x.index():元素在元组内的位置

  3. 部署Tomcat及nginx负载均衡

    Web应用服务器的选择   (1)IBM的WebSphere及Oracle的WebLogic 性能高,但价格也高   (2)Tomcat 性价比高 Tomcat服务器是一个免费的开放源代码的Web应用 ...

  4. Codeforces 1016G Appropriate Team 数论 FWT

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF1016G.html 题目传送门 - CF1016G 题意 给定 $n,x,y$ ,以及一个含有 $n$ 个元 ...

  5. day9文件操作---从即日起时景丽阳老师给我们讲课

    今天的主要内容是文件的操作,读,写,只读只写,或者可读同时可写,追加写,以二进制的方式读,以二进制的方式写,以二进制的方式追加. 思维导图: 给你一个文件路径,从中找出所有的文件,方法如下: # 方法 ...

  6. 3dsmax不同版本 pyside qt UI 设置max窗口为父窗口的方法

    3dsmax不同版本 pyside qt widget 设置 max 窗口为父窗口的方法 前言: 3dsmax 在 2014 extension 之后开始集成 Python 和 PySide,但是在版 ...

  7. thinkphp5 model 模型

    新增更新都是save.saveAll  怎么识别他们 实例化模型后调用save方法表示新增: 查询数据后调用save方法表示更新: save方法传入更新条件后表示更新: isUpdate(true): ...

  8. TF之BN:BN算法对多层中的每层神经网络加快学习QuadraticFunction_InputData+Histogram+BN的Error_curve

    # 23 Batch Normalization import numpy as np import tensorflow as tf import matplotlib.pyplot as plt ...

  9. SQL语句中单引号、双引号和反引号的区分

    反引号 反引号:反引号一般在Esc键的下方,为了区分MySQL的保留字与普通字符而引入的符号. 一般我们建表时都会将表名,库名都加上反引号来保证语句的执行度. 例如: SELECT * FROM `u ...

  10. 依赖配置中心实现注有@ConfigurationProperties的bean相关属性刷新

    配置中心是什么 配置中心,通过key=value的形式存储环境变量.配置中心的属性做了修改,项目中可以通过配置中心的依赖(sdk)立即感知到.需要做的就是如何在属性发生变化时,改变带有@Configu ...