http://blog.csdn.net/jiuqiyuliang/article/details/36424981

搭建Web项目开发环境

然后,我们可以开始使用MyEclipse搭建java Web项目开发环境,只需要跟我一步步操作即可:

1、新建MyEclipse的工作空间

2、选择工作空间的路径

3、建立我们的Web项目

4、输入Web项目的名称,我们使用的是J2EE1.4,Finish之后一定要选择No,如果选择Y的话,MyEclipse就能使用jdk1.5的环境了。

5、此时我们的Web项目基本上就算完成了,下面这幅图,我们大家详细的介绍一下它的目录。

编写一个现实登陆的Servlet,并部署访问

1、我们先写一个简单的HTML,可以在WebRoot新建,也可以复制一个写好的HTML,我们用post提交方式,当然也可以用get提交,大家可以自己尝试一下。

[html] view plain copy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>登录</title>
  6. </head>
  7. <body>
  8. <form action="http://localhost:8080/loginServlet/LoginServlet" method="post">
  9. 用户:<input type="text" name="username" /><br/>
  10. 密码:<input type="password" name="password" /><br/>
  11. <input type="submit" value="登录" />
  12. </form>
  13. </body>
  14. </html>

2、完成Servlet,在Web项目的src中右键新建一个类LoginServlet,输入下面代码即可。

[java] view plain copy
  1. //引入所需要的包
  2. import java.io.*;
  3. import javax.servlet.*;
  4. import javax.servlet.http.*;
  5. public class LoginServlet extends HttpServlet {
  6. //重写doGet方法
  7. public void doGet(HttpServletRequest request,
  8. HttpServletResponse response)
  9. throws ServletException,
  10. IOException {
  11. String username = request.getParameter("username");
  12. String password = request.getParameter("password");
  13. //服务器端打印信息
  14. //System.out.println("username=" + username);
  15. //System.out.println("password=" + password);
  16. //设置编码格式
  17. response.setContentType("text/html;charset=GB18030");
  18. //返回html页面
  19. response.getWriter().println("<html>");
  20. response.getWriter().println("<head>");
  21. response.getWriter().println("<title>登录信息</title>");
  22. response.getWriter().println("</head>");
  23. response.getWriter().println("<body>");
  24. response.getWriter().println("欢迎【" + username + "】用户登录成功!!!");
  25. response.getWriter().println("</body>");
  26. response.getWriter().println("</html>");
  27. }
  28. //重写doPost方法
  29. public void doPost(HttpServletRequest request,
  30. HttpServletResponse response)
  31. throws ServletException,
  32. IOException {
  33. doGet(request, response);
  34. }
  35. }

3、在WebRoot下的WEB-INF的web.xml,部署我们的Servlet,启动服务器。

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4"
  3. xmlns="http://java.sun.com/xml/ns/j2ee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  6. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  7. <servlet>
  8. <servlet-name>MyServlet</servlet-name>
  9. <servlet-class>LoginServlet</servlet-class>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>MyServlet</servlet-name>
  13. <url-pattern>/LoginServlet</url-pattern>
  14. </servlet-mapping>
  15. </web-app>

4、一定要启动服务器,之后在浏览器中输入你的URL,此时我们就可以调用Servlet了,我们看一下运行结果。

Servlet部署

客户端通过URL地址访问web服务器中的资源,所以若想访问Servlet必须要把servlet程序映射到一个URL地址上,在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成,如上面的实例。

*<servlet>用于注册Servlet,包含了<servlet-name>和<servlet-class>两个子元素,分别用于设置servlet的名称以及servlet的类名。

*<servlet-mapping>用于映射上面<servlet>中的对外访问路径,同样包含<servlet-name>和<url-pattern>两个元素,分别用于设置servlet的名称以及servlet的对外访问路径。

在servlet映射到URL有两种格式:

1.“*.扩展名”

2.以正斜杠(/)开头并以“/*”结尾。

servlet对url的匹配规则以及路径问题,大家可以上网查,有很多相关的资料,例如:http://blog.csdn.net/xh16319/article/details/8014107

4、Web服务器调用Servlet过程(Servlet生命周期)

servlet程序是由web服务器调用,web服务器实现了对servlet生命周期的管理。servlet的生命周期分为四步:

1)实例化以及加载servlet,new的过程。

2)初始化init(ServletConfig)。

3)处理请求,调用servlet的service,doget,dopost方法将Request和Response,作为参数传递。

4)退出服务,调用destory方法释放资源。

注意:

1、servlet只实例化一次。感觉有点单例模式的意思,大家可以研究一下Tomcat的实现原理。

2、init方法也只执行一次。servlet实例只创建一次,所以init初始化只调用一次。

5、Servlet线程安全问题

当多个客户端并发访问同一个Servlet时,web服务器会为每一个客户端的访问请求创建一个线程,并在这个线程上调用service方法,因此,service方法内如果访问了同一个资源的话,就有可能引发线程安全问题。大家重点理解下面两句即可:
(1) Servlet是单实例多线程的,如果存在可以修改的成员变量将会出现线程安全问题。
(2) 使用Servlet最好保证Servlet是无状态的,也就是没有可以修改的成员变量。

Servlet编写登陆页面简单实践相关推荐

  1. DAY6:利用 PHP 编写登陆页面

    DAY6:利用 PHP 编写登陆页面 这里代码直接放出了,太懒了,就不细致详解了 这里创建几个 php 文件 1.代码展示 图中蓝底的文件,这里放出其中的代码(login.php.signup.php ...

  2. 编写大型项目web页面 从写web登陆页面开始

    web页面搭建需要准备什么工具 首先我们会和设计师沟通 我们需要一些检验设计的工具 ps 自动裁图 自动测量工具 (我这里安利一下一个工具 我用的cutterman) sketch 可以使用阿里的工具 ...

  3. JavaEE学习之jsp编写登陆注册页面

    JavaEE学习之jsp编写登陆注册页面 刚开始学习javaee,好多东西需要一点点积累.最近用jsp和简单的JavaScript写的登录注册界面,简单做一下记录. 准备–页面布局 登录和注册界面的H ...

  4. wicket学习笔记(2):简单登陆页面的创建

    这次整理了先前大概wicket学习使用的简单东西,创建了一个简单登陆页面.主要用来学习以下知识点内容. wicket基础配置文件等见上一篇文章: wicket学习笔记(1):入门篇 页面效果如下(用来 ...

  5. 红帽企业版RHEL7.1在研域工控板上,开机没有登陆窗口 -- 编写xorg.conf 简单三行解决Ubuntu分辩率不可调的问题...

    红帽企业版RHEL7.1在研域工控板上,开机没有登陆窗口 没有登陆窗口 的原因分析: 没有登陆窗口的原因是因为有多个屏幕在工作,其中一个就是build-in 屏幕(内置的虚拟屏幕)和外接的显示器,并且 ...

  6. python 爬虫解决登录验证问题_python网络爬虫的简单实践——解决无验证模拟登陆问题...

    正文开始以前先唠叨几句,一直以来都是自己在网络各大论坛上向大佬们学习东西,如今因为疫情困在家里写毕设,闲余之时也瞎捣鼓了一下,于是想在这里写一点东西,算是自己学习的一个笔记,再一个就是发现网上的教程质 ...

  7. 简单的PHP登陆页面和登陆成功页面代码

    PHP登陆页面代码 <html> <head> <meta charset="utf-8"> <title>登陆页面</tit ...

  8. php连接mysql实现简单注册登陆页面

    登陆页面index.html 注册页面 register.html 安装Mysql数据库后,用MySQL数据库管理页面phpmyadmin创建数据库和表单 浏览器输入:域名/phpmyadmin ,没 ...

  9. 用java编写一个微博登陆页面

    上次也写了一个微博登陆页面,不过功能还不够完善.今天重新完善了一些功能,分享出来给大家. 基本功能如下: (1)具有类似新浪微博的用户注册图形界面. (2)使用用户名或手机号注册,注册时需要提供新密码 ...

  10. Web前端 简单登陆页面设计 代码

    HTML部分 <!DOCTYPE html> <html>     <head>         <meta charset="utf-8" ...

最新文章

  1. virtualenv创建虚拟环境为主_多版本
  2. python >> 和 <<
  3. Nginx源码分析:惊群处理与负载均衡
  4. 【LibreOJ】#6395. 「THUPC2018」城市地铁规划 / City 背包DP+Prufer序
  5. Web Service 概念
  6. Elementary OS安装Chrome
  7. 1.4编程基础之逻辑表达式与条件分支 09 判断能否被3,5,7整除
  8. 输出一行星花 1110 java
  9. arcgis加载dwg显示一个点_shp文件转为dwg之后在arcgis下打开属性表有高程信息但在cad里面打开为何没高程 - 地学 - 小木虫 - 学术 科研 互动社区...
  10. 结对-人机对战象棋游戏-结对项目总结
  11. Flash入门:动画制作基础知识
  12. STM32 汉字库+ascii字库 存放到 flash中
  13. 【OpenGL开发】关于GLEW扩展库
  14. wireshark抓web包
  15. python 爬取种子_Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息...
  16. 头戴式蓝牙耳机,出现左耳没有声音,右耳正常。
  17. c语言实现学生档案管理系统
  18. IDEA-自定义常用代码块
  19. layui use 定义js外部引用函数
  20. 计算机网络中的层次结构

热门文章

  1. Claris FileMaker Pro更新至19.2.1.14中文版
  2. mac新手入门:在Mac上怎么使用夜览
  3. jquery扩展方法的两种形式
  4. Java之品优购课程讲义_day12(6)
  5. java多线程——CAS
  6. java设计模式案例详解:观察者模式
  7. 架构之路(二):性能
  8. leetcode之String to Integer (atoi)
  9. jquery04-animate
  10. 「代码随想录」213.打家劫舍II 【动态规划】力扣详解!