首页 > 编程语言 >jsp页面和Java代码

jsp页面和Java代码

时间:2024-11-11 13:48:04浏览次数:3  
标签:Java name resp req jsp Cookie servlet 页面

EL

用于在jsp页面获取servlet传的值

使用方式

1.在头文件里开启不忽略el表达式

<!-- jsp头文件 isELIgnored="false"这里是不忽视el语法 -->
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>

2.使用${name}方式来获取传来的值

实例

servlet页面
@WebServlet("/searchGoodsList")
public class searchGoodsListServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("name");
        req.setAttribute("goods", "牛奶");
        req.getRequestDispatcher("/searchList.jsp").forward(req, resp);
    }
}
前端页面(可以是jsp或者html)
<!-- 通过key获取对应值 -->
<span>${goods}</span>

jstl

用于在jsp页面上处理数据

使用方式

1.导入架包

<!--jstl-->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>
<dependency>
  <groupId>jstl</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>

2.jsp文件写上头文件

// 核心标签库
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
// 格式库
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

使用实例

<!-- jsp头文件 isELIgnored="false"这里是不忽视el语法 -->
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%-- 核心标签库--%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%-- 格式库--%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
  <head>
    <meta charset="UTF-8">
    <title>珍珠项链 1号店</title>
  </head>
  <body>
  <div class="list_c">
                    <ul class="cate_list">
      <!-- jstly语法,遍历${goods},${goods}这里是el获得的值,good是每次取出的对象 -->
                        <c:forEach items="${goods}" var="good">
                        <li>
                            <div class="img"><a href="#"><img src="images/${good.img}" width="210" height="185"/></a></div>
                            <div class="price">
                            <!-- ${good.price}是从对象里取对应值 -->
                                <span>¥${good.price}</span>
                            </div>
                            <div class="name"><a href="#">${good.name}</a></div>
                            <div class="carbg">
                                <a href="#" class="ss">收藏</a>
                                <a href="#" class="j_car">加入购物车</a>
                            </div>
                        </li>
                        </c:forEach>
                    </ul>
  </body>
</html>

使用a标签跳转页面并传递参数(请求servlet跳转)

<a href="/selectGoodsById?id=${goods.id}"><img src="images/${goods.img}" width="160" height="136"/></a>

使用form表单跳转页面,传递值用input的name属性,servlet接收用req.getParameter(“name”)

<form action="/searchGoodsList" method="get">
                <input type="search" name="name" value="" placeholder="请输入关键字" class="s_ipt"/>
                <input type="submit" value="搜索" class="s_btn"/>
            </form>

@WebServlet("/selectGoodsById")
public class selectGoodsByIdServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      String name = req.getParameter("id");
      req.getRequestDispatcher("detail.jsp").forward(req, resp);
  }
}

Ajax

异步刷新页面

使用方式

1.引入架包

<script src="jquery-3.4.1.js"></script>

2.使用

  $.ajax({
    <!-- 请求的servlet映射路径 -->
                url: "/LoveGoods",
                <!-- 请求方式 -->
                method: "GET",
                <!-- 向servlet发送的数据 -->
                data:{
                    id:12
                },
                // 返回数据类型
                dataType: "JSON",
                success: function (res) {
                    //  servlet响应的数据
                   alert("successful")
                }
            })

Java代码

//  响应Ajax请求,将数据先转成JSON
String jsonStr = JSONObject.toJSONString(result);
// 将数据原路返回
resp.getWriter().write(jsonStr);

实例

<!-- 头文件 -->
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<!-- 引入架包 -->
<script src="jquery-3.4.1.js"></script>
<!-- 点击收藏弹出收藏成功 -->
unction m1(id) {
            $.ajax({
                url: "/LoveGoods",
                method: "GET",
                data:{
                    id:id
                },
                // 返回数据类型
                dataType: "JSON",
                success: function (res) {
                    //  servlet响应的数据
                    if (res == 1) {
                        $("ul.cate_list li .carbg a.ss").css({"background: url":"images/heart_h.png no-repeat 10px center"});
                        alert("successful")

                    } else {
                        alert("失败")
                    }

                }
            })
<!-- 操作的jsp页面 -->
<a id="bb1" href="#"  onclick="m1(${good.id})" class="ss">收藏</a>
data里是数组的情况

需要使用JSON.stringify()将数组转成换成 JSON 格式的字符串

$.ajax({
        url:"/checkHot",
        method:"get",
        data:{
            ids:JSON.stringify(ids),
            value:hotValue,
        },
        dataType:"json",
        success:function(res){
            
            if(res>0){
                lightyear.notify('设置成功~','success', 3000);
            }else{
                lightyear.notify('没有要修改的商品或商品设置失败~', 'danger', 100);
            }
        }
    })

Session和cookie

Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

cookie

Cookie总时由用户客户端进行保存的(一般是浏览器),按其存储位置可分为:内存式Cookie和硬盘式Cookie。
内存式Cookie存储在内存中,浏览器关闭后就会消失,由于其存储时间较短,因此也被称为非持久Cookie或会话Cookie。
硬盘式Cookie保存在硬盘中,其不会随浏览器的关闭而消失,除非用户手工清理或到了过期时间。由于硬盘式Cookie存储时间是长期的,因此也被称为持久Cookie。

<!-- 创建和获取cookie -->
@WebServlet("/cookie")
public class CookieServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setCharacterEncoding("UTF-8");
        Cookie cookie = new Cookie("name", "张三");
        resp.addCookie(cookie);

        // 获取cookie
        Cookie[] cookies = req.getCookies();
        if (cookies != null) {
            for (Cookie c : cookies) {
                System.out.println(c.getName() + " : " + c.getValue());
            }
        }
    }
}

标签:Java,name,resp,req,jsp,Cookie,servlet,页面
From: https://blog.csdn.net/m0_72407563/article/details/143682700

相关文章

  • java里面使用groovy案例+详解
    场景:最近有一个计算商品运费的,如果商品的数量大于快递公司设置的数量10那么超出部分也需要计算额外运费,那么这些计算过程代码我能不能不在java里面写呢,用一种可配置化的方式来根据不同的传参计算出运费?页面传参[{“key”:“起订量(大单位)”,“isRequired”:true,“is......
  • 20万字208道Java经典面试题总结(附答案)
    1、JDK和JRE有什么区别?JDK(JavaDevelopmentKit),Java开发工具包JRE(JavaRuntime Environment),Java运行环境JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。2、==和 equals 的区别是什么?对于基本类型,==比较的......
  • 2024年最全java面试题(八股文)
    1.Java基础1.1为什么Java代码可以实现一次编写、到处运行?在程序运行前,Java源代码(.java)需要经过编译器编译成字节码(.class)。在程序运行时,JVM负责将字节码翻译成特定平台下的机器码并运行,也就是说,只要在不同的平台上安装对应的JVM,就可以运行字节码文件。1.2一个Java文件里......
  • Java——接口
    一、接口是什么在Java中,接口(Interface)是一种引用数据类型,类似于类,然而它只能包含常量、方法签名和嵌套类型。接口不能包含实例变量或方法的实现(在Java8及之后的版本,可以在接口中定义默认方法和静态方法)。接口主要用于定义类的外部行为,并允许类实现这些行为。二、接口详细介......
  • JavaScript基础总结
             JavaScript(简称JS)是一个广泛使用的客户端脚本语言,常用于网页开发中。它可以在浏览器中运行,执行交互操作和动态效果。以下是JavaScript基础的所有核心知识点,按主题分类列出。1.基本语法声明变量使用var、let和const来声明变量:varname='Alice';/......
  • JavaScript题目一 根据成绩给出学生考评
            根据学生的成绩给出考评,可以通过if或switch语句来实现。下面是一个简单的JavaScript代码示例,根据学生的成绩返回不同的评语。示例代码:functionevaluateStudent(score){letevaluation;if(score>=90){evaluation='优秀';}else......
  • JavaScript题目二 实现猜数字游戏
    实现一个猜数字游戏的过程,通常包括以下几个步骤:生成一个随机数:计算机随机生成一个目标数字。用户输入猜测:玩家猜测数字并提交。比较用户输入与目标数字:计算机检查玩家的猜测,给出提示(比如“猜小了”或“猜大了”)。循环进行:直到玩家猜对为止,或者达到预设的次数。1.HTML文件(......
  • JavaScript题目三 制作简易计算器
    目标:提供四个基本的运算功能:加、减、乘、除。支持数字输入和运算符输入。显示结果。1.HTML文件(index.html)<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,i......
  • 【含文档】基于ssm+jsp的商店会员系统(含源码+数据库+lw)
    1.开发环境开发系统:Windows10/11架构模式:MVC/前后端分离JDK版本:JavaJDK1.8开发工具:IDEA数据库版本:mysql5.7或8.0数据库可视化工具:navicat服务器:apachetomcat主要技术:Java,Spring,SpringMvc,mybatis,mysql,vue2.视频演示地址3.功能系统定义了两个......
  • java浅拷贝BeanUtils.copyProperties引发的RPC异常
    作者:京东物流吴义背景近期参与了一个攻坚项目,前期因为其他流程原因,测试时间已经耽搁了好几天了,本以为已经解决了卡点,后续流程应该顺顺利利的,没想到人在地铁上,bug从咚咚来~没有任何修改的服务接口,抛出异常:java.lang.ClassCastException:java.util.HashMapcannotbecastto......