作业:
1、书写servlet的类架构及重要方法。
(ServletConfig,Servlet)<---GenericServlet(getInitParameter(String str);init();service();)<-HttpServlet(doXXXX();).
2、如何注册Servlet。要求记忆。
<?xml version="1.0" encoding="utf-8"?>
<web-app>
<servlet>
<servlet-name>ShowPersonServlet</servlet-name>
<servlet-class>com.lwz.servlet.ShowPersonServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ShowPersonServlet</servlet-name>
<url-pattern>/show</url-pattern>
</servlet-mapping>
</web-app>
3、描述servlet映射的几种方式。
精确映射: /test 只能以/test路径访问servlet
扩展映射: *.do 以.do结尾的请求,都能访问servlet
路径映射: /abc/* 凡是以/abc/目录开始的请求,都能访问servlet

4、如何解决输出中文乱码问题,如何解决表单数据的乱码问题?
表单method="post"
servlet中请求和响应乱码的解决:
//设置请求信息编码集,只对POST有效
req.setCharacterEncoding("utf-8");
//设置响应信息的MIME类型和编码集
resp.setContentType("text/html;charset=utf-8");

5、<load-on-startup>标签是什么含义
在注册servlet时,加入了<load-on-startup>标签,并且该标签的值为0或正数,那么容器启动时
会实例化servlet。没有或值为负数,表示第一次访问servlet时,实例化servlet。

6、写出servlet生命周期。
1、启动tomcat,读取conf/server.xml文件,以确定启动端口,和web应用程序存放的路径。
2、读取webapps目录中,所有WEB应用程序中的web.xml文件,并完成该文件的解析。如果web.xml文件书写错误,
那么解析失败,从而启动时会抛出异常。注意,任何一个web应用程序的web.xml书写错误都会导致启动异常。
3、加载并实例化servlet。如果在注册servlet时,加入了<load-on-startup>标签,并且该标签的值为0或正数,那么容器启动时
会实例化servlet。没有或值为负数,表示第一次访问servlet时,实例化servlet。
4、调用init()方法,完成初始化操作。
5、当请求到达时,调用service()方法,完成业务操作。
6、销毁阶段,调用destroy()方法,完成资源的清理。
在整个生命周期中,1,2,3,4,6都只执行一次,只有5才是每次请求都会执行,而servlet也是单实例多线程的类。

7、ServletConfig和ServletContext的作用。
SevletConfig对象为Servlet提供初始化参数
ServletContext对象属于整个Web应用程序
//得到servlet配置接口对象
ServletConfig cfg = this.getServletConfig();
//得到servlet的初始化参数
String s = cfg.getInitParameter("123");
//得到全局应用上下文对象
ServletContext context = this.getServletContext();
String contextValue = context.getInitParameter("name");

8、如何定义servlet初始化参数和全局参数。
servlet的初始化参数,在注册servlet时,可以在<servlet>标签中加入init-param标签,完成初始化参数的配置。
<init-param>
<param-name>123</param-name>初始化参数名称
<param-value>456</param-value>初始化参数的值
</init-param>
可以通过配置接口对象ServletConfig中,提供的getInitParameter(),根据初始化参数名称,得到对应的值。初始化参数只能在
当前注册的servlet中使用,不能再其他地方使用。

全局初始化参数:可以在web-app根元素中,通过context-param标签定义全局初始化参数。
<context-param>
<param-name>name</param-name>
<param-value>007</param-value>
</context-param>

9、如何得到web应用中文件的真实路径。
//得到全局应用上下文对象
ServletContext context = this.getServletContext();
String contextValue = context.getInitParameter("name");
context.getResource("/image/1.jpg");//根据相对路径得到物理路径

10、如何绑定对象在全局共享。
可以在应用上下文对象ServletContext中,调用setAttribute()方法,绑定对象在全局共享。无论是哪个用户,哪个servlet
都能访问。通过getAttribute("obj")方法,得到共享对象的值。

11、编码题:
表结构:id userName sex age
完成一个servlet,访问该servlet并查询数据库。输出一个表中所有的记录内容。书写一个网页,建立表单,当用户在表单中输入姓名,可以按姓名模糊查询数据库的内容
要求能支持中文。

javaweb作业二的更多相关文章

  1. Python学习之编写三级菜单(Day1,作业二)

    作业二:多级菜单 三级菜单 可依次进入各子菜单 在各级菜单中输入B返回上一级Q退出程序 知识点:字典的操作,while循环,for循环,if判断 思路: 1.开始,打印一级菜单让用户进行选择(可以输入 ...

  2. java学习笔记-JavaWeb篇二

    JavaWEB篇二 45 HttpSession概述46 HttpSession的生命周期 47 HttpSession常用方法示例48 HttpSessionURL重写 49 HttpSession ...

  3. day1作业二:多级菜单操作

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入back返回上一层,输入quit退出整个程序 思路: (1)首先定义好三级菜单字典: (2)提 ...

  4. day1作业二:多级菜单操作(函数实现)

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入back返回上一层,输入quit退出整个程序 本示例的三级菜单是一个yaml文件格式,格式如下 ...

  5. day1 作业二:多级菜单操作

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入b返回上一层,输入q退出整个程序 思路:三级菜单第一级别是省,第二级别是市,第三级别是县,用户 ...

  6. day1作业二:多级菜单

        作业二:多级菜单 1.三级菜单 2.可以次选择进入各子菜单 3.所需新知识点:列表.字典 4.打印b回到上一层 5.打印q退出循环 流程图如下: readme: (1)存储三级菜单的字典;设置 ...

  7. JavaWeb(二)cookie与session的应用

    前言 前面讲了一堆虚的东西,所以这篇我们来介绍一下cookie和session的应用. 一.使用cookie记住用户名 1.1.思路介绍 1.2.实现代码 1)LoginServlet package ...

  8. Logistic回归二分类Winner or Losser----台大李宏毅机器学习作业二(HW2)

    一.作业说明 给定训练集spam_train.csv,要求根据每个ID各种属性值来判断该ID对应角色是Winner还是Losser(0.1分类). 训练集介绍: (1)CSV文件,大小为4000行X5 ...

  9. 20165231 预备作业二:学习基础和C语言基础调查

    微信文章感想 读了娄老师微信公众号中的文章,老师给我们的启示首先就是要坚持,万事开头难,但是只要肯坚持就一定会有所成就,不管是学习还是生活方面.其中最有触动的就是减肥了,是我三四年来一直难以完成的目标 ...

随机推荐

  1. node中异步IO的理解

    解释性语言和编译型语言的区别: 计算器不能直接的理解高级语言,只能理解机器语言,所以必须把高级语言翻译为机器语言,翻译的方式有两种,一个是编译,一个是解释. 解释性语言的程序不需要编译,它是在运行程序 ...

  2. select标签和多行文本标签

    一.多行文本textarea <form> <div> <textarea name="more"></textarea> < ...

  3. Hadoop部署方式-完全分布式(Fully-Distributed Mode)

    Hadoop部署方式-完全分布式(Fully-Distributed Mode) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本博客搭建的虚拟机是伪分布式环境(https://w ...

  4. 转:UIViewController中各方法调用顺序及功能详解

    UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, viewWillAppear, viewDidAppear ...

  5. canvas 入门

    <canvas>是HTML5新增的,是可以使用脚本(JavaScript)在其中绘制图像的HTML元素. canvas是由HTML代码配合高度和宽度属性而定义出的可绘制区域,JavaScr ...

  6. 组合数学及其应用——polya计数

    在处理类似下面的问题中,一般的计数方法会出现问题:假如你要用红.蓝两种颜色给一个正四面体的四个顶点着色,试问存在多少种不同的着色方案? 在高中我们常用的方法是模拟涂色过程,分情况讨论,然后基于分步乘法 ...

  7. Java中创建线程的三种方法以及区别

    Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例.Java可以用三种方式来创建线程,如下所示: 1)继承Thread类创建线程 2)实现Runnable接口创建线 ...

  8. Redis学习三:Redis数据类型

    一.Redis的五大数据类型 1.String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value.string类型是二进制安 ...

  9. Java并发编程原理与实战九:synchronized的原理与使用

    一.理论层面 内置锁与互斥锁 修饰普通方法.修饰静态方法.修饰代码块 package com.roocon.thread.t3; public class Sequence { private sta ...

  10. Druid.io通过NiFi摄取流数据

    NiFi是一个易于使用,功能强大且可靠的系统来处理和分发数据. 本文讲述如何用NiFi将Http的Json数据传到Druid.国外的一篇文章讲到如何用NiFi将推文传到Druid,https://co ...