首页 > 编程语言 >JAVAEE

JAVAEE

时间:2022-11-23 18:36:38浏览次数:62  
标签:JAVAEE void request javax import servlet response

javaee背景

  • 克服传统Client/Server架构的弊端

  • 迎合Browser/Serexer架构的潮流

  • 应用领域为中大型企业软件 中大型网站

    B/S

    • 部署企业应用或者网站 (联网)

Web服务器之Tomcat

WEB服务器简单的来说就是网站服务器 它的作用就是向浏览器等Web客户端提供文档 放置网站文件 让访问网络的用户都可以进行访问 也可以放置文档让用户下载

主流服务器

  • IIS ,Nginx,Tomcat

web项目概况

一个wed项目由serlet jsp页面及

  1. JSP(全称JavaServer Pages)是由Sun公司倡导研发的一种,动态生成HTML页面的一种网页技术。
  2. 简单来说,JSP是JAVA与HTML的结合体
  3. 可以运行在任何系统之上,无需改动代码
  4. 在web开发过程中担任显示层的角色
  • . JSP中的语法成份:
  • HTML
  • 注释
  • 声明
  • 脚本
  • 表达式·
  • 指令
  • 动作
  1. 1、使用HTML注释
  • 格式:

  • 右击页面-》查看源代

  • .在客户端能看到注释内容码

  1. . 使用JSP注释

    • 格式:<%--注释语句--%>
    • 在客户端看不到注释内容

    嵌入JAVA代码

    使用声明方式在HTML页面中嵌入JAVA代码

    1)用于定义方法、成员变量

    2)格式: <%! JAVA代码 %>

<%--
  Created by IntelliJ IDEA.
  User: g15
  Date: 2022/3/31
  Time: 15:28
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<% %>局部变量
<%--         <%=%>输出变量的值       --%>
<%String name="陈叔钰";
    System.out.println(name);

%>
<%=name%>
</body>
</html>

JSP的page指令

·1、作用: page指令用于设定JSP页面的属性与功能·2、语法:<%@page设置属性%>
. 3、属性:
. 1) language="java"
指定嵌入的语言
. 2) import= "iava.util.*"
导包
. 3) contentType="text/html ;charset=UTF-8"设置编码

jsp的java方法

使用声明方式在HTML页面中嵌入JAVA代码. 1)用于定义方法、成员变量
格式:<%!JAVA代码%>→

<%!
public String str = "声明元素";
声明:
public void show(){
定义成员变量
System.out.println(str);
声明方法
%>

<%@ page import="fhc.Xues" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %>
</h1>
<br/>
<a href="hello-servlet">Hello Servlet</a>
<%
   Xues xues = new Xues();
   Xues xues1 = new Xues();
   Xues xues2 = new Xues();
    xues.setAge(12);
    xues.setName("学1生");
    xues1.setAge(122);
    xues1.setName("学2生");
    xues2.setAge(123);
    xues2.setName("学3生");
    ArrayList<Xues> S = new ArrayList<>();
    S.add(xues);
    S.add(xues1);
    S.add(xues2);
%>
 <table>
     <tr><td>姓名</td>
         <td>年龄</td></tr>
     <%
         for (Xues xues3:S){
     %>
     <td><%=xues3.getName()%></td>
     <td><%=xues3.getAge()%></td>


     <%}%>
 </table>
</body>
</html>

Servlet概述

  1. Servlet是一种服务器端的Java应用程序
  2. Servlet接收浏览器发送的请求,然后将处理生成的结果应答给空户湍(处理客户端请求)
  3. 在web开发过程中一般担任控制层的角色

init.方法:初始化方法,只执行一次

service方法,每次发送请求,都被调用

destroy方法:销毁方法,只执行1次

Servlet的执行原理:执行原理:
1.当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
http://localhost:8080/demo0425 servlet war exploded/Servlet01
2分析路径,根据路径找到 servlet的类,从而找到servlet类的字节码文件3. tomcat会将字节码文件加载进内存,并且创建其对象
4.调用其方法

servlet这个对象是Tomca创建的

​ 默认情况下,第一次被访问时, servlet被创建可以配置执行servlet的创建时机。
​ *在标签下配置
​ 1.第一次被访问时,创建
​ 本<load -on-startup>的值为负数,默认2.在服务器启动时,创建

  • 的值为0或正整数(在web.xml中配置文件)老.cLIahconi.1o+i 一1.

设置servlet的路径:有2种方法:

1〕通过注解配置
2)通过web.xml文件

Servlet中的生命周期方法:
1.被创建:执行init方法,只执行一次
Servlet什么时候被创建?
默认情况下,第一次被访问时,servlet被创建*

​ 可以配置执行Servlet的创建时机。
​ 在标签下配置
​ 1.第一次被访问时,创建

的值为负数,默认

​ 2.在服务器启动时,创建

的值为求或正整数(在web.xm1中配置文件)或者:@webservlet(value=" / Servletei",loadonstartup =
*解决:尽量不要在servlet中定义成员变量。即使定义了成员变量,也不要对修改值

servlet的init方法,只执行一次,说明一个servlet在内存中只存在一个对象,servlet是单例的

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
     <servlet-name>Servlet1</servlet-name><!--   servlet的类名-->
    <servlet-class>cn.sdxh.web.servelt.Servlet1</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet1</servlet-name>
        <url-pattern>/ss.d</url-pattern><!--   servlet的路径-->
    </servlet-mapping>
    
</web-app>

servlet类1

package cn.sdxh.web.servelt;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "Servlet1", value = "/Servlet1")
public class Servlet1 extends HttpServlet {
    @Override//处理get
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().write("asda");//网页
        System.out.println("1231");//控制台
    }

    @Override//处理Post
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

servlet类2

package cn.sdxh.web.servelt;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet("/Servlet02")
public class Servlet02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("a1sda");//网页
        System.out.println("12131");//控制台
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

网页代码

<%@ page import="fhc.Xues" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %>
</h1>
<br/>
<a href="hello-servlet">Hello Servlet</a>
<%
   Xues xues = new Xues();
   Xues xues1 = new Xues();
   Xues xues2 = new Xues();
    xues.setAge(12);
    xues.setName("学1生");
    xues1.setAge(122);
    xues1.setName("学2生");
    xues2.setAge(123);
    xues2.setName("学3生");
    ArrayList<Xues> S = new ArrayList<>();
    S.add(xues);
    S.add(xues1);
    S.add(xues2);
%>
 <table>
     <tr><td>姓名</td>
         <td>年龄</td></tr>
     <%
         for (Xues xues3:S){
     %>
     <td><%=xues3.getName()%></td>
     <td><%=xues3.getAge()%></td>


     <%}%>
 </table>
</body>
</html>

网址localhost:8080/demo2_war_exploded/ss.d

网页显示 asda 控制台显示 1231

HttpServletResponse概述

服务器向客户端浏览器返回的应答信息被封装成为一个HttpServletResponse对象

常用方法

返回值方法名参数 说明
void setCharacterEncoding(String env) 将编码设置为env指定的格式
void setContentType(String type) 设置返回类型
PrintWriter getWriter() 获取向浏览器输出数据的流
void sendRedirect(String location) 跳转到location指定的位置
String encodeURL(String url) 对URL进行重新编码

中文编码问题

servlet类

先设置完编码,再输出

package cn.sdxh.web.servelt;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/Servlet02")
public class Servlet02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8"
        );//第一行 设置编码
        response.getWriter().write("a1sda");//网页
        System.out.println("12131");//控制台

        PrintWriter getWriter =  response.getWriter();
        getWriter.write("陈淑钰超级无敌帅 天下第一帅 吴彦祖");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}
网址localhost:8080/demo2_war_exploded/Servlet02

Jsp和Servle

相同性:

  1. 都必须运行在服务器中
  2. 都可以通过Java+HTML动态生成html页面

JSP原理

  1. 每个JSP 页面在第一次被访问时,会被翻译成一个Servlet源程序(java文件),接着再把这个Servlet源程序编译成相应的class类文件
  2. WEB容器会像调用普通Servlet程序一样,来装载和解释执行这个由JSP页面翻译成的Servlet程序

不同性:

  1. jsp中更容易编写HTML代码,不易于编写相关JAVA代码。4
  2. servlet更侧重于java代码的编写,不易于编写HTML代码

结论

结论:

为了保证代码的整洁性和可维护性,根据他们各自的优势做了以下区分:

  1. JSP负责页面展示
  2. Servlet负责数据业务处理

jsp超链接调用servlet类

相对路径

<%--相对路径 Servlet1--%>
<a href="Servlet1">Hel</a>

绝对路径

<a href="/demo4_war_exploded/Servlet1">Hel</a>

img

在Jsp中编写表单

客户端浏览器发出的请求被封装成为一个HttpServletRequest对象

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %>
</h1>
<br/>
<a href="Servlet1">Hel</a>、
<form action="Servlet1" method="get">
    用户<input type="text" name="1"/><br>
    密码<input type="password" name="2"/><br>
    <input type="submit" value="登录">
</form>
</body>
</html>

servlet类1

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "Servlet1", value = "/Servlet1")
public class Servlet1 extends HttpServlet {
    @Override//处理get
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("asda");//网页
        System.out.println("1231");//控制台
        String NAME=request.getParameter("1");
        String MIMA=request.getParameter("2");
        System.out.println("用户名"+NAME);
        System.out.println("密码"+MIMA);
    }

    @Override//处理Post
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

常用方法的使用

获得web应用程序在浏览器中发布的目录名

servlet类

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "Servlet1", value = "/Servlet1")
public class Servlet1 extends HttpServlet {
    @Override//处理get
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("asda");//网页
        System.out.println("1231");//控制台

        String pa=request.getContextPath();//发布的目录名字
        System.out.println(pa);//发布的目录名字
    }
    @Override//处理Post
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

处理中文乱码

response.setContentType( "text/html; charset=UTF-8"");//处理响应中的中文乱码

request.setcharacterEncoding("UTF-8");//处理请求中的中文乱码

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "Servlet1", value = "/Servlet1")
public class Servlet1 extends HttpServlet {
    @Override//处理get
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       response.setContentType("text/html; charset=UTF-8");//处理响应中中文
        request.setCharacterEncoding("utf-8");//处理请求中的代码
    }

    @Override//处理Post
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

处理Post月Get中文乱码

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    String username = request.getParameter("username");
    String password = request.getParameter(" password ");

}

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String username = request.getParameter(" username ");
    System.out.prinlnt(username);
    // 乱码
    // 处理乱码
    username = new String(username.getBytes("ISO8859-1"),"UTF-8") 

}

/requet:请求对象'

/response:响应对象

修改其他人的项目服务器

image-20220406153624081

image-20220406153637261

image-20220406153700304

+:添加
-:移除

Get与Post

表单和超级链接请求均默认为Get

表单可以设置提交方式为Post

Get

  • Get是向服务器提交数据的一种方式
  • Get方式提交会请求到servlet中doGet方法
  • Get请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,如:servlet/LoginServlet?username=“admin”&password=“123”
  • Get显式提交 不安全
  • Get方式提交的数据最多只能是1024字节

Post

  • Post提交方式会请求到servlet中doPost中

  • Post提交:把提交的数据放置在是HTTP包的包体中。

  • Post隐式提交 安全

  • 数据大小理论上POST没有限制,可传较大量的数据

  • Post安全

后台传递到前台(Servlet向jsp传递数据)

  1. 将要传递的数据放入request对象中
  2. 使用请求转发将数据传递到指定的页面上
  3. 页面接收request传递过来的数据并展示

HttpServletRequest方法

返回值/方法名/参数 说明
void setCharacterEncoding(String env) 将编码设置为env指定的格式
String getParameter(String name) 获取请求中的由name指定的参数值
void setAttribute(String name, Object o) 在这个请求中存储属性。
void removeAttribute(String name) 删除name指定的属性值
Object getAttribute(String name) 返回name指定的属性值
String getContextPath() 项目的相对路径

void setAttribute(String name, Object o) 在request中保存对象的值

Object getAttribute(String name) 从request对象中取值,根据键来取值

返回值方法名参数 说明
RequestDispatcher getRequestDispatcher(String path) 获取指定path路径的转发对象
HttpSession getSession() 返回与这个请求关联的当前的有效的session会话
String getRequestURI() 返回的是请求的全部,包括Http协议,端口号,servlet名字和映射路径

RequestDispatcher getRequestDispatcher(String path) 获得转发器

网页的登录

输入用户名和密码,验证用户名和密码是否正确,如果合法,则跳转到欢迎页面,并显示欢迎你,XXX

html

登录

难点 三目运算符 判断后台传输的数据是不是空 是空 就打印空的字符串 不是空 就打印出得到的字符

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %>
</h1>
<br/>
<%--相对路径 Servlet1--%>
<a href="Servlet1">Hel</a>
<%--绝对路径 <form action="/demo4_war_exploded/Servlet1" method="get">
--%>
<%--equest.getContextPath()项目的根目录--%>
<form action="<%=request.getContextPath()%>/Servlet1" method="get">
    用户<input type="text" name="a"/><br>
    密码<input type="password" name="b"/><br>
    <input type="submit" value="登录">

</form>
<div style="outline-width: thin">
    <%=
    request.getAttribute("msg")==null?"":request.getAttribute("msg")
    %>>

</div>
</body>
</html>

欢迎

<%--
  Created by IntelliJ IDEA.
  User: g15
  Date: 2022/4/6
  Time: 16:50
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
欢迎
<h3>你的名字<%= request.getAttribute("se")%></h3>
<h3>你的密码<%= request.getAttribute("s")%></h3>


</body>
</html>

Servlet1

if判断前台 输入的账户密码是否合法 合法把账户密码就输出到欢迎

不合法就输出把"用户名密码不合法"到 登录页面

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "Servlet1", value = "/Servlet1")
public class Servlet1 extends HttpServlet {
    @Override//处理get
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");//处理响应中中文
        request.setCharacterEncoding("utf-8");//处理请求中的代码
/*        response.getWriter().write("asda");//网页
        System.out.println("1231");//控制台*/
        String NAME=request.getParameter("a");
        String MIMA=request.getParameter("b");
        System.out.println("用户名"+NAME);
        System.out.println("密码"+MIMA);
        request.setAttribute("se",NAME);
        request.setAttribute("s",MIMA);


if (NAME.equals("123")&&MIMA.equals(123)){
    request.getRequestDispatcher("欢迎.jsp").forward(request,response);
}else {
    request.setAttribute("msg" ,"用户名密码不合法");
   request.getRequestDispatcher("index.jsp").forward(request,response);
}
    }
    @Override//处理Post
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

输出对象与列表

输出对象

html

<%@ page import="网站.xs" %><%--
  Created by IntelliJ IDEA.
  User: g15
  Date: 2022/4/7
  Time: 16:25
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<a href="<%=request.getContextPath()%>/Servlet02">cg</a>
<%
xs a=(xs)request.getAttribute("d");
%>
<h1>显示对象</h1>
<%=a.getId()%></br>
    <%=a.getName()%>
</br><%=a.get年龄()%></br>
${d.name}
${d.年龄}
${d.id}


</body>

</html>

Servletall

import 网站.xs;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "Servlet02", value = "/Servlet02")
public class Servlet02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");//处理响应中中文
        request.setCharacterEncoding("utf-8");//处理请求中的代码
        xs 学生 = new xs();
        学生.setId(1);
        学生.setName("陈淑钰");
        学生.set年龄(17);
        request.setAttribute("d",学生);
        request.getRequestDispatcher("对象.jsp").forward(request,response);
    }

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

对象

package 网站;

public class xs {
    private String name;
    private int 年龄;
    private int id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int get年龄() {
        return 年龄;
    }

    public void set年龄(int 年龄) {
        this.年龄 = 年龄;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

输出列表

html

<%@ page import="网站.Account" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: g15
  Date: 2022/4/8
  Time: 15:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    //根据request域中键名来取值
    List<Account> accountList= (List<Account>) request.getAttribute("list");
%>
<h1>显示集合</h1>
<table width="500" border="1">
    <tr>
        <td>编号</td><td>姓名</td><td>存款</td>
    </tr>
        <%
      for(Account ac:accountList) {
    %>
    <tr>
        <td><%=ac.getId()%></td><td><%=ac.getName()%></td><td><%=ac.getMoney()%></td>
    </tr>

        <%
      }
    %>
</body>
</html>

Servletall

import 网站.Account;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@WebServlet(name = "accountAllServletall", value = "/accountAl1lServletall")
public class accountAllServletall extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        request.setCharacterEncoding("utf-8");
        //2.模拟从数据库中查询所有账户
        Account account1=new Account();
        account1.setId(1);
        account1.setName("苏子然");
        account1.setMoney(10000);

        Account account2=new Account();
        account2.setId(2);
        account2.setName("陈淑玉");
        account2.setMoney(10000000);

        Account account3=new Account();
        account3.setId(2);
        account3.setName("徐文焕");
        account3.setMoney(20000);

        List<Account> accountList=new ArrayList<Account>(); //创建一个集合
        accountList.add(account1);
        accountList.add(account2);
        accountList.add(account3);
        //在request对象中保存一个集合
        request.setAttribute("list",accountList);
        //转发到另外一个页面
        request.getRequestDispatcher("account.jsp").forward(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

对象

package 网站;

public class xs {
    private String name;
    private int 年龄;
    private int id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int get年龄() {
        return 年龄;
    }

    public void set年龄(int 年龄) {
        this.年龄 = 年龄;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

总页面

<%--
  Created by IntelliJ IDEA.
  User: g15
  Date: 2022/4/8
  Time: 15:06
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<a href="<%=request.getContextPath()%>/Servlet02">查询账户</a><br/>
<a href="<%=request.getContextPath()%>/accountAl1lServletall">查询账户1</a><br/>
</body>
</html>

el.和 jstl.表达式

EL:

简化 ip页面中java代码语法:${表达式}
${键名}:取request对象中存放的值
使用﹒访问对象的属性

对象

    private int id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int get年龄() {
        return 年龄;
    }

    public void set年龄(int 年龄) {
        this.年龄 = 年龄;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

Servletall

import 网站.xs;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "Servlet02", value = "/Servlet02")
public class Servlet02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");//处理响应中中文
        request.setCharacterEncoding("utf-8");//处理请求中的代码
        xs 学生 = new xs();
        学生.setId(1);
        学生.setName("陈淑钰");
        学生.set年龄(17);
        request.setAttribute("d",学生);
        request.getRequestDispatcher("对象.jsp").forward(request,response);
    }

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

html

<%@ page import="网站.xs" %><%--
  Created by IntelliJ IDEA.
  User: g15
  Date: 2022/4/7
  Time: 16:25
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<a href="<%=request.getContextPath()%>/Servlet02">cg</a>
<%
xs a=(xs)request.getAttribute("d");
%>
<h1>显示对象</h1>
${d.name}
${d.年龄}
${d.id}
</body>
</html>

JSTL:标签库

代替java中if语句代替java中 for语句

. 1、<c:if>标签用于实现if到断的功能
. 2、标签格式:

条件为真时执行的代码
</c:if>
相当于if(){
}

  1. 相当于java中if elseif else结构
    <c:cho9se>
    <c:when test=""></c:when><c:otherwise.>kc:otherwise>
<%--
  Created by IntelliJ IDEA.
  User: g15
  Date: 2022/4/13
  Time: 9:47
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    pageContext.setAttribute("i",11);
%>
<c:if test="${i%2==0}">
    ${i}我是傻逼
</c:if><c:if test="${i%2!=0}">
    ${i}我是智障
</c:if>

</body>
</html>

JSP的taglib指令

  1. 作用: taglib指令向JSP页面中导入新的标签
  2. .语法:<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
  3. 、属性:
    1. uri =http://java.sun.com/jsp/jstl/core指定要导入标签库的位置
    2. prefix= “c"用于区分导入的标签库

Jstl标签库如何来用,

  1. 导包WEB-INFVib

  2. 引入标签库<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    )使用

  3. <c;forEach>相当于for循环<c:forEach var=“变量” items="要遍历的集合/数组" varStatus,=“状态变”${(变量}</ c:forEach>

<%@ page import="网站.Account" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: g15
  Date: 2022/4/8
  Time: 15:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--<%--%>
<%--    //根据request域中键名来取值--%>
<%--    List<Account> accountList= (List<Account>) request.getAttribute("list");--%>
<%--%>--%>
<h1>显示集合</h1>
<table width="500" border="1">
    <tr>
        <td>编号</td><td>姓名</td><td>存款</td>
    </tr>

    <c:forEach items="${list}" var="ad">

 <tr>   <td>${ad.id}</td><td>${ad.name}</td><td>${ad.money}</td></tr>
    </c:forEach>



<c:forEach items="${list}" var="a">
    <li>${a.id}&nbsp;&nbsp;&nbsp;${a.money}</li>

    </c:forEach>
</body>
</html>

jsp.的九大内置对象

对象类型 对象名称
javax.servlet.ServletContext application
javax.servlet.http.HttpServletRequest request
javax.servlet.http.HttpSession session
javax.servlet.jsp.PageContext pageContext
javax.servlet.http.HttpServletResponse response
javax.servlet.jsp.JspWriter out
java.lang.Object page
java.lang.Throwable exception
javax.servlet.ServletConfig config

request: 请求对象,用于jsp向servlet,或者servlet向jsp传递数据。

response: 响应对象,用于跳转页面,设置servlet返回数据类型等。

out输出对象,在java代码中通过这个对象输出信息到页面

session: 浏览器会话对象,服务器会为每一个用户创建一个session对象 适用于保存用户登录信息,用户与浏览器对话。

application: 服务器对象,所有用户共用一个服务器对象,服务器关闭后失效 适合用于存储公共数据,禁止乱用!非常占据服务器内存;

pageContext: 可以通过它获得上面所有对象。

config: 对象的主要作用是取得服务器的配置信息。

page: 对象代表JSP本身,页面级对象。

exception: 捕获页面异常对象。

一、request请求对象:

  1. 1.作用:请求对象,获取客户端浏览器向服务器发送的请求用于jsp向servlet传值或者servlet向jsp,传值
  2. 常用方法:
  3. reguest.getParamter“参数名"):获取参数的值
  4. reguest.setcharacterEncoding(“编码”):设置请求的编码
  5. reguest-getDispatcher(“页面的路径"):获取转发器
  6. reguest.ietAttribute(“键”,值):保存键值对
  7. reguest.getAttribute(“键”):根据键获取值,相当于$"键名”

二.response:响应对象

,用于跳转页面,设置servlet返回数据类型等。

  1. 常用方法:

response.setContentlvpe("text/html:charset=UTF-8"):设置响应的编码
response.getWriter()

标签:JAVAEE,void,request,javax,import,servlet,response
From: https://www.cnblogs.com/2060yu/p/16919385.html

相关文章

  • JavaEE#JCA
    概述jca依赖jta,也就是javax.resource-api依赖javax.transation-api。javax.resourcejavax.resource.ccijavax.resource.spijavax.resource.spi.endpointjavax.resource.......
  • 基于JavaEE的企业制度管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要:本企业制度管理系统是针对目前企业制度管理的实际需求,从实际工作出发,对过去的企业制度管理系统存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息,取代人......
  • 尚硅谷-JavaWeb Day6 JavaEE三层架构及web分层结构
    JavaEE三层架构介绍分层的目的是为了解耦,解耦就是为了降低代码耦合度,方便项目后期的维护和升级; web层:com.xxx.web/servlet/controllerservice层:com.xxx.serv......
  • JavaWeb/JavaEE开发入门(概述-总纲)
    作为初学者的浅知薄见,漫谈概览.欢迎指正和交流.1.从SE到Web到EE开发刚入门Java开发的时候,即使对于计算机网络有所了解,但是对于从围绕JDK展开学习的JavaSE的过程......
  • javaEE——Servlet
    ServletServlet是Java提供的一门动态web资源开发技术Servlet是JavaEE规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet......
  • JavaEE企业级应用开发教程 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/19awdYpedqslkeYxfU6YSYQ点击这里获取提取码 ......
  • springMvc36-JavaEE-JSP基础-EL表达式和JSTL标签库(Taglibs)
    EL表达式和JSTL标签库:在JSP页面代替java代码,便于编写一.EL表达式   作用:${}简化脚本表达式<%=%>   j2ee1.4以前版本需指定<%@pageisELIgnored="false......