博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet入门(三)Servlet初体验
阅读量:3701 次
发布时间:2019-05-21

本文共 3223 字,大约阅读时间需要 10 分钟。

前言

      通过前面两个章节的铺垫,本章正式迈入Servlet的学习

方法

1.概念

我们知道,有了http协议,规定了web交互的基本规范。有了服务器,用户的请求能够实时的得到响应。那么现在有个问题,就是用户发送一个请求给服务器,我服务器怎么才能知道该调用后台的哪些代码呢?Servlet应运而生了!

实际上它就是帮助处理用户请求到服务器,服务器调用相应的方法。

2.第一个Servlet程序

在讲解这个之前呢,推荐大家下载一款Java集成开发工具IntelliJ IDEA,有同学疑问了?我们之前不是有eclipse吗?为什么要用新的开发工具啊?原因是eclipse简单,功能不齐全!!!还有人说了,那用MyEclipse啊。这我也能理解,博主之前一直再用MyEclipse,公司里用eclipse、MyEclipse、IntellJ IDEA的比率大概在2:4:4,也就是说MyEclipse和IntellJ IDEA你选一个就行了!因为我之前一直在用MyEclipse,所以这次尝试一下IntelliJ IDEA。

我们拿之前的SMS项目的代码作为讲解!

1)打开IDE,在web文件夹下新增两个jsp文件login.jsp和success.jsp,前者是用户登录的表单,后者是登录成功的跳转页面。目前你可以不需要理会JSP文件的含义,只是把它当作一个普通的html文件来看待就行了!

目前的工程结构如下所示:

login.jsp源码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>      用户登录      
用户名:
密码:

success.jsp源码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>      用户登录        

用户登录成功

注意:这是一个相当简单的登录表单,没有加入任何的CSS以及JS的修饰,不影响功能!

前提条件:将web项目部署到tomcat服务器中(每种工具的具体部署方法不同,读者可自行百度)

我这里将SMS工程部署到了之前下载好的tomcat中。以IntellJ为例:

这里用户点击登录的话就触发了一次请求,请求的url为 login.do

那么服务器如何知道这个请求应该调用什么代码呢,下面让我们来写Servlet告诉他吧!

2)编写Servlet文件(它也是一个Java文件,继承了HttpServlet)\com\jwang\student\servlet\UserServlet.java

package com.jwang.student.servlet;import com.jwang.student.bo.User;import com.jwang.student.service.UserService;import com.jwang.student.service.impl.UserServiceImpl;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class UserServlet extends HttpServlet {    @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response){        String username = request.getParameter("username");        String password = request.getParameter("password");        try {            UserService userService = new UserServiceImpl();            User user = new User("01",username,password);            if (userService.login(user)) {                request.getSession().setAttribute("username", username);                request.getRequestDispatcher("/success.jsp").forward(request, response);            } else {                request.setAttribute("errorMsg", "用户名或密码错误,请重新输入!");                request.getRequestDispatcher("/login.jsp").forward(request, response);            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response){        this.doGet(request, response);    }}

以上代码的含义就是接收用户发出的请求,做登录验证!大家可以看到我调用了userService的login()方法,大家应该还没忘吧!

到这里我们的login.do请求应该是要访问这段代码的。

3)配置请求路径login.do指向UserServlet

\web\WEB-INF\web.xml

UserServlet
com.jwang.student.servlet.UserServlet
UserServlet
/login.do

好了,经过了以上的准备工作,你的第一个Servlet就算是配置好了!

启动程序,进入登录表单输入用户名与密码,点击登录

  • 成功:系统跳转到success.jsp,显示登录成功
  • 失败:系统返回至login.jsp,用户需要重新输入用户名和密码进行登录

登录的用户名与密码在数据库中Users表:博主的是admin和admin

附录:

1.开发中启动web应用的时候一定要是debug模式,方便调试

IntellJ IDEA中请点击这个小虫子!

在代码中左侧点击鼠标打上断点即可实现代码调试!

常用的快捷键是: F8下一步 、F9下一个断点

不使用快捷键的话,debug窗口如下:

2.乱码问题 

大家有没有发现,表单中写入了中文后,传递到后台就发生了乱码!!!这种很烦!

因为我的工程是utf-8编码的,所以添加如下代码即可解决乱码问题!

转载地址:http://uuacn.baihongyu.com/

你可能感兴趣的文章
数据结构---字符串
查看>>
ACM---日记
查看>>
ACM日记
查看>>
ACM日记
查看>>
ACM日记
查看>>
ACM日记
查看>>
4月17日小结
查看>>
4月20日小结
查看>>
4月24日小结
查看>>
4月28日小结
查看>>
5月4日小结
查看>>
第十届山东省省赛总结
查看>>
5月19日小结
查看>>
5月22日小结
查看>>
暑期训练D1
查看>>
暑期训练D2
查看>>
暑期训练D3
查看>>
暑期训练D4
查看>>
暑期训练D5
查看>>
暑期训练D6
查看>>