Java EE系列(七)——关于第9个war包的学习总结

5.1劳动节,学校就放假两天,哪儿也去不了,就只有待在学校里学J2EE(真就“劳动节”)

这次peter xiao进行第9个war包的学习记录。首先我们还是先看说明文档,了解本次实验的内容。

自行完成相应的动作和思考
    0.读完程序中的文档,即注释,如果有相关问题,则直接回答问题。

进行一个最简单的用户登录的模拟
    1 界面如何组织参数输入
    2 参数如何传到服务器上进行相应的处理
    3 一个servlet从接请求到给响应要做些什么事情?
    4自己要慢慢熟悉在前端用html里的form的方式向后台提交数据,提交请求

看的出来,这一次是要设计一个简单的用户登录页面,需要从前端以form表单的形式提交数据和请求,然后用servlet接请求和响应。

 我们先看html文件。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
	建议用f12看一下整个请求到响应的过程<br>
	<form action="login"> 
	用户名:<input type="text" name="username"> <br> 
	密 码:<input type="password" name="password"> <br> 
	<input type="submit" value="登录"> 
	</form>
</body>
</html>

我们着重看这个部分

<form action="login"> 
	用户名:<input type="text" name="username"> <br> 
	密 码:<input type="password" name="password"> <br> 
	<input type="submit" value="登录"> 
	</form>

以上代码说明这个文件有两个输入字段(用户名输入和密码输入)以及一个提交按钮。值得一提的是,这里密码输入的属性值是password,说明定义的是密码字段,该字段中的字符被掩码(对于之后的登录界面都会这么设计)。最后通过表单提交按钮submit将数据提交到服务器中。

之后我们查看servlet。

package servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		//从请求中获取相应的参数
        String username = request.getParameter("username"); 
        String password = request.getParameter("password"); 
        
        // 思考,在真实的项目中,接收到参数后要做什么动作?
        
        // 真实的业务操作可能会有哪些动作呢?
        
        //在控制台输出相应的参数
        System.out.println("username = " + username ); 
        System.out.println("password = " + password ); 
        
        //给出响应 
        response.setContentType("text/html"); 
        response.getWriter().println("Login Success!"); 
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		doGet(request, response);
	}
}

从上述代码中可以看出,通过调用request.getparameter()方法来从请求中获取相应的参数,并且通过容器的实现来取得通过get或者post方式提交过来的数据。而用该方法传递的数据会从web客户端传到web服务器端,代表http请求数据,该方法最终返回String类型的数据。在获得数据后,通过调用response.setContentType()方法来区分数据类型,调用浏览器内嵌模块来对数据进行处理。

接下来我们来看具体的运行结果,并且通过f12键打开网页开发者工具,查看请求发出过程。

1.运行login.html文件,弹出前端登录页面。

2.输入用户名和密码,提交登录按钮,显示登录成功。

3.打开开发者工具(F12键),查看请求响应过程。

 

发现URL完整地显示了出来,与此同时账号和密码也全部显示出来了,同时可以看到下面是使用的get请求方法,这也是参数URL显示出来的原因。而使用post方式则可以解决隐私性差的问题。

最后我们来对思考题进行一个解答。在真实的项目中,接受到参数之后需要对账号和密码数据进行判断是否正确,然后再放行;对于一个servlet从请求到响应的过程总体来说是加载——初始化——提供服务——销毁过程。在servlet处理请求时,首先web服务器会接受请求传给Tomcat,Tomcat根据请求及配置文件判断servlet是否存在,再判断其是否实例化,最后调用实例对象的service()方法,并开启一个新的线程去执行相关处理。

第9个war包学习结束,我们下一个war包见!bye~~~ 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值