ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaWeb学习--JavaBean与Servlet

2021-05-15 20:01:01  阅读:126  来源: 互联网

标签:容器 account JavaWeb -- request password Servlet String


目录

JavaBean

Javabeans就是符合某种特定的规范的Java类。使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。

设计原则

  • 公有类
  • 无参构造方法
  • 属性私有
  • getter和setter方法

举例:

public class Users {
    private String account;//用户名
    private String password;//密码

    public Users(){}

    public void setAccount(String account) {
        this.account = account;
    }


    public void setPassword(String password) {
        this.password = password;
    }

    public String getAccount() {
        return account;
    }

    public String getPassword() {
        return password;
    }
}

动作元素

JSP动作元素( action elements ),动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。

存取JavaBean有关的:

  • <*jsp:useBeans>
  • <*jsp:setProperty>
  • <*jsp:getProperty>

useBeans

作用:在jsp页面中实例化或者在指定范围内使用javabean :
格式:

<jsp:useBean id=“标识符(引用)” class=“类名” scope=“作用范围” />

setProperty

在这里插入图片描述

getProperty

在这里插入图片描述

作用域

在这里插入图片描述说明∶使用useBeans的scope属性可以用来指定javabean的作用范围。

在这里插入图片描述

forward

语法:<jsp:forward page=“URL”/>
等同于request.getRequestDispatcher("/url").forward(request,response);

param

语法<jap:param name=“参数名” value=“参数值”>
常常与forward动作指令一起用作为子标签
在这里插入图片描述

Model1

在这里插入图片描述

Servlet

Servlet容器等级

在这里插入图片描述
一个context就是一个项目


Servlet生命周期

在这里插入图片描述
servlet生命周期阶段包括初始化、加载、实例化、服务和销毁。

  • 1.init( ),当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用。我们可以利用init( )方法来执行相应的初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig对象进来从而对Servlet对象进行初始化。
  • 2.service( ),第一次请求时,Servlet容器会先调用init( )方法初始化一个Servlet对象出来,然后会调用它的service( )方法进行工作,但在后续的请求中,Servlet容器只会调用service方法了。
  • 3.destory( ),当要销毁Servlet时,Servlet容器就会调用这个方法,在卸载应用程序或者关闭Servlet容器时,就会发生这种情况,一般在这个方法中会写一些清除代码。

我们自己编写的Servlet继承了HttpServlet类,一般只需覆盖doPost或者doGet方法,不必覆盖sevrvice( )方法.因为一个sevrvice( )方法会调用doPost或者doGet方法

Servlet与九大内置对象关系

在这里插入图片描述

Servlet获取表单数据

对于一个表单:

<form action="Login" method="post" class="login">
  <p>login</p>
  <input type="text" name="account" placeholder="用户名">
  <input type="password" name="password" placeholder="密码">
  <input type="submit" class="btn" value="登录" align="center">
</form>

我们使用HttpServletRequest的方法获取表单数据
因为是客户端发送请求,使用request.getParameter(“name”)来获取

@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("utf-8");
        String account = request.getParameter("account");
        String password = request.getParameter("password");
        System.out.println(account);
        System.out.println(password);
    }

这样一来就能够获得表单数据
==值得一提的是复选框提交的数据使用getParameterValues来获得,使用字符串数组来接收:

String []str = request.getParameterValues("name");

Servlet路径跳转

<!--使用相对路径访问HelloServlet -->
    <!-- /servlet/HelloServlet 第一个/表示服务器的根目录 -->
    <a href="servlet/HelloServlet">访问HelloServlet!</a><br>
    <!-- 使用绝对路径 访问HelloServlet,可以使用path变量:path变量表示项目的根目录-->
    <a href="<%=path%>/servlet/HelloServlet">访问HelloServlet!</a><br>
    <!--表单中action的URL地址写法,与超链接方式完全相同。 -->
    <a href="servlet/TestServlet">访问TestServlet,跳转到Test.jsp</a>

MVC

MVC模式即Model、View、Controller,是软件开发过程中比较流行的设计思想,旨在分离模型,控制,视图。是一种分层思想的体现。

  • 视图(View):用户界面。
  • 控制器(Controller):业务逻辑
  • 模型(Model):数据保存

在这里插入图片描述

1、View 传送指令到 Controller
2、Controller 完成业务逻辑后,要求 Model 改变状态
3、Model 将新的数据发送到 View,用户得到反馈

所有通讯都是单向的

在这里插入图片描述

标签:容器,account,JavaWeb,--,request,password,Servlet,String
来源: https://blog.csdn.net/Windlinxy/article/details/116426591

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有