本系列文章旨在记录和总结自己在Java Web开发之路上的知识点、经验、问题和思考,希望能帮助更多(Java)码农和想成为(Java)码农的人。

目录

  1. 介绍
  2. 开发环境搭建
  3. 项目总体设计
  4. 登录页面login.html
  5. LoginServlet
  6. HouseServlet
  7. 中文乱码问题

介绍

还记得我们最早的第一个Servlet应用吗?它实在是有点low了。前面两篇文章我总结了一下自己对Servlet核心原理以及Servlet主要接口的心得体会,本篇文章就使用Servlet技术来做一个有实际意义一点的例子。

开发环境搭建

至于JDK、Eclipse、Tomcat的下载和安装,就不多说了。

然后是在Eclipse中新建Java Web工程以及配置Servlet API库等,可以参考这篇文章。

我比较关注租房中介这一个行业,就做一个租房网吧,项目名就叫house-renter吧。

新建好的工程如下图:

我们的Web应用的上下文根路径是默认的:house-renter

项目总体设计

首先,租房网要有一个用户登录界面,这个界面对所有用户来说都是一样的,所以可以做成静态页面,我们就命名该页面为login.html吧。

然后,用户登录请求需要设计一个Servlet来专门处理,就命名该Servlet为LoginServlet吧(或许也可以叫UserServlet,抑或AccountServlet等等,随你喜欢了)。

用户登录之后,后台系统对该用户进行大数据分析画像、人工智能推荐(总之是采用各种高精尖的前沿技术啦,就这么一说,反正真正的系统是包含这些的,我们这就没有了)、精准匹配到该用户感兴趣的房源,把它们展现给该用户。于是需要一个房源列表页面,但该页面是动态的,即每个用户都有自己感兴趣的房源。所以,我们也需要设计一个Servlet来动态生成该页面,就命名该Servlet为HouseServlet吧。

该用户浏览自己感兴趣的房源列表,可以点击某房源,展示其详细信息,即我们要一个房源详细信息页面。暂时也让HouseServlet来动态生成吧,毕竟是跟房子有关的,以后觉得有问题再逐步优化。

最后,为了演示,我们在房源详细信息页面中增加一个编辑按钮,这样,后台维护人员可以编辑我们的房源详细信息。当然,这样的操作并不是所有用户都有权限执行的,所以需要用户的操作权限认证,不过,我们暂且不实现这个功能。这样,我们还需要房源详细信息的编辑页面以及编辑的提交请求需要处理,暂时也让HouseServlet来动态生成吧,毕竟还是跟房子有关。

然后,我们把房源信息保存在House这个实体类中,即我们需要:

  • 静态页面:login.html
  • Servlet:LoginServlet、HouseServlet
  • 实体类:House

登录页面login.html

我们可以使用Eclipse的New工具建立HTML文件,这样高效很多,当然也可以建立空白文件然后手动敲所有代码。

租房网 - 登录

用户名:密码:

我是使用Eclipse的New工具生成HTML 5模板的文件,除了

标签和标签的内容作了修改,其他都没有变。

登录页面很简单,就是一个表单,关于HTML的基本知识,参考这篇文章。

将登录页面放在WebContent节点下,这样我们的Web应用可以直接访问到。需要关注的是这个表单提交的路径是login.servlet,这就意味着我们需要将LoginServlet配置成映射到的相对URL为“/login.servlet”。当然,现在我们这个LoginServlet还不存在,因此登录会出错。

在Eclipse中Publish该应用到Tomcat中,并启动Tomcat,然后使用浏览器访问:http://localhost:8080/house-renter/login.html

输入用户名和密码,或者不输入,直接点击登录,提示出错找不到/house-renter/login.servlet对应的展示:

LoginServlet

我们也可以使用Eclipse的New工具直接新建一个Servlet,我把无用的代码删除,并添加登录的业务逻辑之后是这样的:

package houserenter.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/login.servlet")public class LoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String userName = request.getParameter("userName");String password = request.getParameter("password");//这里需要验证用户是否已经注册,省略System.out.println("userName: " + userName + 

javaweb不同用户登录不同页面的页面_Java Web轻松学36 - 第二个Servlet应用租房网(1)...相关推荐

  1. Java-web实现用户登录、注册功能

    目录 环境搭建 数据库 用户登录 需求分析 代码实现 编写UserMapper类 编写User类 编写loginServlet类 编写login.html 编写login.css 用户注册 需求分析 ...

  2. JavaWeb学习——用户登录案例(13)

    目录 用户登录 流程说明 准备环境 基本创建 编写静态页面 存放实体类 pom导入坐标 核心配置文件,映射文件与接口 编写用户登录功能 编写接口方法 修改页面与编写Servlet 接收数据 判断输入 ...

  3. javaweb——模拟用户登录和新闻发布

    目录 模拟用户登录 1.登录界面: 注意点:验证码 2.对登录界面与数据库实现数据交互: 3.登录成功页面: 新闻发布 1.发布新闻页面 2.发布新闻数据和数据交互: 注意点:新增id 3.发布新闻成 ...

  4. 商城购物系统【用户登录注册,购物页面,购物车页面,订单页面】

    商城购物系统 文章目录 商城购物系统 前言 一.使用Mysql数据库建立需要用的商品表,用户表 二.利用html+cs+js对前台进行设计 效果如下 2.对商品页与购物车页进行设计 总结 前言 这学期 ...

  5. java重定向链接页面变小_java web的进来看一下!页面重定向的异常!帮忙看一下!谢谢了!...

    我用login.jsp进行登录留言板的管理页面用一个servlet进行身份验证.成功----->通过request.getRequestDispatcher("/admin/secur ...

  6. java wed登录面 代码_JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)...

    下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  7. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  8. javaweb学习总结(二十二):基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  9. javaweb学习总结——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

最新文章

  1. python2 安装faiss-gpu 报错 faiss/faiss/python/swigfaiss.i:241: Error: Unable to find ‘faiss/impl/platfo
  2. Z-BlogPHP主题/名扬图文博客主题模板商业版
  3. Eclipse的详细安装步骤
  4. [Swift]LeetCode1017. 负二进制转换 | Convert to Base -2
  5. el表达式字符串与变量拼接
  6. java学习资料整理(开发必备)
  7. 如何做职业规划并进行求职准备(持续更新)
  8. 特效编辑器开发手记1——令人蛋疼菊紧的Cocos2d-x动态改变粒子数
  9. Axure 灯箱效果
  10. 健康体检管理系统源码 运营级PEIS系统源码 PEIS健康体检系统源码 PEIS源码 B/S架构开发
  11. 10 Kafka集群与运维
  12. 异常:java.lang.ArithmeticException
  13. hover效果移除时元素还原太生硬的情况
  14. 【Auto.js】QQ名片点赞
  15. 关于Pycharm主题Darcula下使用jupyter显示图片的颜色错误
  16. Abaqus接触分析--SurfaceBaseContact 法向切向接触行为
  17. 荧光标记系列Cy3/Cy5/Cy7/FITC荧光素标记石莼多糖/岩藻多糖/半乳岩藻多糖
  18. android开发使用SQLite之写日记
  19. Windows系统下解压.tar文件出错,提示:无法创建符号链接,可能需要以管理器身份运行winrar
  20. 【ftp】ftp服务器无法登录的解决办法

热门文章

  1. 引入方式之外部样式表(CSS、HTML)
  2. 天下谁人不识君:awt如何使用弹窗功能?
  3. JavaScript:原型设计模式
  4. 网络蛋白质组学在计算机中应用,Mumford Shah算法研究及其在拓扑蛋白质组学中的应用...
  5. Python全栈开发之Django基础
  6. Qt Project Build error PRJ0019: 工具从Moc'ing xxx.h...
  7. onCreate onStart onResume onStop onPause onDestroy onRestart onWindowFocusChanged
  8. Openstack api security testing tools
  9. Linux的用户和组群管理
  10. oracle范围分区表,Oracle表分区之范围分区-Oracle