Java面试题总结系列 Servlet
Servlet技术主要是为了使用Web上的HTTP协议而设计的。servlet是在WEB服务器上运行的程序。Java Servlet可以用于处理客户请求或生成动态Web网页。先一个实例。然后解释。
先编辑如下文件,暂且命名为FirstServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
public class FirstServlet extends HttpServlet{
protected void doGet(HttpServletRequest request,
HttpServletResponse response)throws ServletException,
java.io.IOException{
response.setContentType("text/html");
java.io.PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title> Servlet 测试</title>");
out.println("</head>");
out.println("<body>");
out.println("Hello,Java Servlets");
out.println("</body>");
out.println("</html>");
out.close();
}
}
先要在电脑上配置好JDK,下载tomcat 7.在tomcat/lib/servlet-api.jar将该jar包的路径,配置到环境变量中的系统变量,CLASSPATH中,“;C:\Users\Administrator\Desktop\java\servlet-api.jar”,注意封号,因为javax.servlet和javax.servlet.http这两个接口是在servlet-api.jar包中实现的。然后在FirstServlet.java的路径下,javac FirstServlet.java编译后,生成FirstServlet.class。然后将FirstServlet.class拷贝到你安装的tomcat 7.0中的tomcat/webapps/examples/WEB-INF/class下,(里面的jsp、servlets、websocket、websocket-deprecated都是很好的示例)。然后在路径tomcat/webapps/examples/WEB-INF/web.xml中添加
<servlet>(作用:用来命名Servlet的)
<servlet-name>FirstServlet</servlet-name>
<servlet-class>FirstServlet</servlet-class>(若有package名,要用.隔开)
</servlet>
<servlet-mapping>(作用:为Servlet提供一个缺省的URL)
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/FirstServlet</url-pattern>
</servlet-mapping>
然后,在tomcat/bin/startup.bat下,双击startup.bat启动tomcat容器。输入路径:http://localhost:8080/examples/FirstServlet即可看到输出:Hello,Java Servlets。
在web.xml中添加的两个标签<servlet></servlet>和<servlet-mapping></servlet-mapping>,命名和定制URL的作用。我们可以为Servlet文件命名,并定制URL路径,其中定制URL是依赖命名的,命名必须在定制URL之前。例如:
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>org.whatisjava.TestServlet</servlet-class>
<init-param>
<param-name>userName</param-name>
<param-value>Daniel</param-value>
</init-param>
<init-param>
<param-name>E-mail</param-name>
<param-value>125485762@qq.com</param-value>
</init-param>
</servlet>
用上面这个配置,servlet可以调用getServletConfig().getInitParameter("param1")获得参数名对应的值。
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>org.whatisjava.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
作用:实现了命名,并为Servlet定制URl
Java面试题总结系列 Servlet的更多相关文章
- 2019年Java面试题基础系列228道,题目汇总,可以先看会多少
Java面试题(一) 1.面向对象的特征有哪些方面? 2.访问修饰符 public,private,protected,以及不写(默认)时的区别? 3.String 是最基本的数据类型吗? 4.flo ...
- 2019年Java面试题基础系列228道(1)
1.面向对象的特征有哪些方面? 面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为 ...
- 2019年Java面试题基础系列228道(3)
51.类 ExampleA 继承 Exception,类 ExampleB 继承ExampleA. 有如下代码片断: try { throw new ExampleB("b")}c ...
- JAVA面试题解惑系列(七)——使用日期和时间
日期和时间,不仅在考试面试题.处理的问题.似乎没有哪个项目能够避开它们.我们经常在处理用户的出生年月日.注冊日期,订单的创建时间等属性时用到,由此可见其重要性. java.util.Date类 提 ...
- Java面试题_第二阶段(Servlet、HTTP、Session、JSP、 Ajax、Filter、JDBC、Mysql、Spring)
1.1. 描述Servlet调用过程? 答案: (1)在浏览器输入地址,浏览器先去查找hosts文件,将主机名翻译为ip地址,如果找不到就再去查询dns服务器将主机名翻译成ip地址. (2)浏览器根据 ...
- 2019年Java面试题基础系列228道(2)
21.描述一下 JVM 加载 class 文件的原理机制? JVM 中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java 中的类加载器是一个重要的 Java 运行时系统组件,它 ...
- 2019年Java面试题基础系列228道(6)
51.ArrayList 与 LinkedList 的不区别? 最明显的区别是 ArrrayList 底层的数据结构是数组,支持随机访问,而LinkedList 的底层数据结构书链表,不支持随机访问. ...
- 2019年Java面试题基础系列228道(5)
21.存在两个类,B 继承 A,C 继承 B,我们能将 B 转换为C 么?如 C = (C) B: 这属于强制类型转换,如果被转换的B实例不是C类型,会有异常 比如你的ABC分别对应动物,猫,黑猫. ...
- 2019年Java面试题基础系列228道(4)
1.Java 中能创建 volatile 数组吗? 能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组.我的意思是,如果改变引用指向的数组,将会受到 vo ...
随机推荐
- Eloquent ORM笔记
基本操作 新增 $user = new User; $user->name = 'John'; $user->save(); $insertedId = $user->id;//从对 ...
- Ghost博客安装
Ghost博客是一个基于Node.js 的开源博客平台,由前WordPress UI 部门主管John O'Nolan 和WordPress 高级工程师Hannah Wolfe 创立,目的是为了给用户 ...
- SQL Server 2012 数据库笔记
慕课网 首页 实战 路径 猿问 手记 Python 手记 \ SQL Server 2012 数据库笔记 SQL Server 2012 数据库笔记 2016-10-25 16:29:33 1 ...
- Unity3D 为什么保存Transform等引用效率会更高
正常来说,大部分同学一般get transform都直接gameobject.transform使用.但往往,你会发现有些人会将transform引用保存起来,例如: private Transf ...
- 依赖注入(DI)与服务容器(IoC)
参考文章:http://www.yuansir-web.com/2014/03/20/%E7%90%86%E8%A7%A3php-%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A ...
- c#socket同步通信
再次特别感谢张子阳老师的文章,读后深感益处. 废话不多说,先贴代码 这是服务器端代码 using System; using System.Collections.Generic; using Sys ...
- Android基于mAppWidget实现手绘地图(八)–获取用户地理位置
你有两种方式确定用户的当前位置: 1.使用安卓标准方式 2. 使用MapWidget的监听器 标准方式: 在你的acivity中加入: LocationManager locManager = (Lo ...
- Android基于mAppWidget实现手绘地图(一)--简介
http://lemberg.github.io/mappwidget/user_guide.html 最近在看一些导游类应用,发现一些景区的导览图使用的完全是自定义地图,也就是手绘地图.这种小范围使 ...
- EnjoyCSS – 在线的,先进的 CSS3 代码生成器
EnjoyCSS 是一款先进的 CSS3 代码生成工具,可以让你摆脱日常的编码.它方便和易于使用的用户界面允许您快速,无需编码就可以调节出丰富的图形样式.您将能够玩转所有的 EnjoyCSS 参数,就 ...
- iOS_UIImage_图片旋转
一.目的: 有时候我们获得到的图片我们不是我们想要的方向,需要对图片进行旋转.比如:图片旋转90度180度等. 二.实现过程. 1.获取到该UIImage. 2.开启上下文. 3.上下文的具体操作. ...