Servlet初识(JavaWeb学习笔记四)
来源:互联网 发布:淘宝赚钱软件 编辑:程序博客网 时间:2024/05/17 15:18
mdzz,写了一个中午的,我还以为已经保存到草稿箱了,然后就都删了,写另外一篇博客!结果!!!!又要重新写一遍了! - - ||
本篇博客主要内容有以下几点:
1. 什么是Servlet?它的作用是什么? 2. 怎么创建一个Servlet? 3. 使用Servlet做一个最简单的小栗子。
1.什么是Servlet?它的作用是什么?
首先让咱们看看StackOverFlow上的回答:什么是Servlet? 从这个回答中,我们不难分析出Servlet的几大特点:
Servlet其实就是一个简单的Java类,唯一不同的是它可以运行在服务器端,用于处理network上的请求。
Servlet可以说是Web的地基,尽管在它之上有许多高楼大厦,如Struts,Spring等。
Servlet可以运行在服务器(如Tomcat)中。
2.怎么创建一个Servlet?
一般而言,创建Servlet分为以下几步:
- 创建一个类继承自HttpServlet - 重写父类的doGet()以及doPost()方法 - 在web.xml部署描述符中配置这个Servlet - 测试运行
重点介绍一下第三点,如何web.xml部署描述符中配置这个Servlet,如下图所示:
首先,根据用户输入的URL,找到对应url-pattern(1),然后根据servlet-name(2)匹配到servlet标签中的(3),然后找到这个用于处理请求的Servlet(4)。
测试:运行Tomcat,在浏览器中输入:http://localhost:8080/servlet/first ,成功!!!
这里有个小问题:当我在浏览器中输入这个地址的时候,发现了这样一个错误:
具体的代码如下所示,想一想问题出在哪里:
protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException { System.out.println("req get!!"); super.doGet(req, resp); }
当然,创建Servlet还可以通过实现Servlet接口,并实现service()方法,或者通过继承GenericServlet类,实现service()方法等,但是一般最常用的还是继承HttpServlet。
3. 使用Servlet做一个最简单的小栗子。
上面也已经简单的介绍了一下,Servlet可以用来处理HTTP请求,下面简单的完成一个用户登录的小栗子。
要求:
1.创建界面:login.html
2.使用LoginServlet处理登陆请求,如果name等于张玥,password等于iloveyue,就表示登录成功,否则,给它跳转到一个错误界面,然后五秒钟之后自动跳转回登录界面。
1.界面很简单,就是创建一个表单,表单将会在下一章详细的介绍一下,主要是表单中的两个属性,一个action,表示请求的虚拟目录为”/login”(可以将Servlet的URL设置为这个目录 - - ),method表示请求传递的方式,为post。之后也会详细的分析这个method属性的参数。
<!-- 之前设置为/login, 结果Servlet根本就没有进行处理,此html在 WebContent下的html文件夹中,使用../login可以访问Servlet --> <form action="../login" method="post"> Username: <input type="text" name="username"/><br> Password: <input type="password" name="password"/><br> <input type="submit" value="用户注册"/> </form>
2.创建LoginServlet
String username = req.getParameter("username"); String password = req.getParameter("password"); if("zhangyue".equals(username) && "iloveyue".equals(password)) { // 之前的路径为(../html/success.html) req.getRequestDispatcher("/html/success.html").forward(req, resp); } else{ // 之前的路径为(../html/failed.html) req.getRequestDispatcher("/html/failed.html").forward(req, resp); }
3.创建failed.html,其他的html,如success就不创建了:
<!DOCTYPE html><html><head><meta charset="UTF-8"><!-- 之前的url设置为login.html 结果跳转到http://localhost:8080/login/login.html --><meta http-equiv="refresh" content="5; url='html/login.html'"><title>Insert title here</title></head><body> 登陆失败!!五秒钟后自动跳转会登陆界面!!!</body></html>
这里有几个小问题:
相对路径以及绝对路径的问题,设置了很久,打算在后面几章统一进行总结,这里将会是一个难点。我成功的避开了所有正确的路径写法!
关于页面定时跳转,可以使用meta标签,也可以使用js定时器。
关于Request的一些API,在这里就不细细分析了,在后面的博客中,有时间再总结一下,主要是真心觉得只记录API没有任何意思。
好啦,下班啦,今天就到这里了
- Servlet初识(JavaWeb学习笔记四)
- javaweb学习笔记(五)-Servlet初识
- JavaWeb学习笔记:Servlet
- Javaweb学习笔记---Servlet
- JavaWeb学习笔记之servlet
- 学习笔记,javaWeb中的Servlet
- JavaWeb学习笔记之Servlet
- javaWeb之初识Servlet
- JAVAWEB之初识servlet
- servlet学习笔记(四)
- 学习笔记--javaWeb-servlet学习1
- javaweb学习笔记:Servlet开发基础
- JAVAWEB学习笔记之Servlet详解
- JavaWeb学习笔记(二)---Servlet协议
- JavaWeb学习笔记——servlet
- JavaWeb学习笔记——servlet
- JavaWeb 学习笔记(二)Servlet生命周期
- Javaweb学习笔记---Servlet相关类
- Windows下安装Python常用工具包(numpy、scipy、scikit-learn)
- 百度首页推荐【政协委员:建立“国家课题”,打造美丽新三峡】
- Android知识导图-View的手势分发
- 多线程的面试题迅雷
- 贪财的富翁(作业)
- Servlet初识(JavaWeb学习笔记四)
- Android代码混淆
- c3p0简单实现方式
- Http的Get和Post提交方式的自定义工具类
- 删除字符串中出现次数最少的字符
- jQuery.extend 函数使用详解
- Win10系统安装教程
- 读入优化
- zookeeper实现异地容灾模块