这个是浏览器版本的问题吗,请求行不显示了吗
额,老师,看完这个视频我有点懵了。我可能理解有点问题,就是我们现在都是自己本机一台去访问,所以session.setAttribute(Constants.USER_SESSION_KEY,users),但是如果有多个用户的话,不是会把这个key给覆盖掉吗?
1.我这里谷歌浏览器开发者为啥没有内容?
2.我的Ctrl+Alt+V按键失灵了,可能存在冲突,在IDEA软件哪里设置?
修改了xml后重启了tomcat,登录之后是这样的
看了很多同学提问为什么没有servletContext没有setAttribute就能getAttribute?我是这么理解的,不知道对不对,可能能让一些同学更好理解一下。
我的理解是:账号第一次登录,servletContext确实没有以userid来setAttribute,所以拿到的temp是null的(即没有以本userid作为key的键值对),所以跳过了if语句,为servletContext来setAttribute,把userid作为key(主键,唯一性)和本次请求的session(这个session有着本user的attribute)作为value,这一对键值对,放在了全局容器servletContext里。此时,另一个使用者用了同一个账号登录,建立会话状态,在全局容器servletContext里搜key是userid,发现这一对键值对存在(说明登录过或者在登录),temp不为null,为了实现单点登录,在全局容器中把刚刚搜到的键值对移除(removeAttribute),将键值对的value(即同一个账户的session)失效,建立一个新的属于自己的键值对放在全局容器里。
微信截图_20210717211000.png
这是什么情况,版本什么的都是跟着老师下载的
老师,代码这样写是什么意思?对前端的账户和密码在数据库中查询,应该是获取结果集,在结果集中,进行遍历,看哪一个与账户和密码匹配。
老师,我想追问一下下图的问题,如果还要自己在tomcat的项目文件夹中自己添加image/picture.jpg, 那为什么要在项目文件夹中创建image文件夹?我没在项目中创建image文件夹和图片,还是可以通过/download.do下载文件,如图二。
代码:
package com.bjsxt.servlet; import jakarta.servlet.ServletContext; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.StandardCharsets; public class DownloadFileServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 获取ServletContext对象 ServletContext servletContext = this.getServletContext(); // 路径转换 String realPath = servletContext.getRealPath("image/rickandmortybg.jpg"); System.out.println(realPath); // 读文件 File file = new File(realPath); System.out.println(file.getName()); FileInputStream fis = new FileInputStream(file); byte[] buff = new byte[fis.available()]; fis.read(buff); // 在响应中添加附加信息 resp.addHeader("Content-Disposition", "attachment;filename=" + new String(file.getName().getBytes("utf-8"), "iso-8859-1")); OutputStream os = resp.getOutputStream(); os.write(buff); os.flush(); os.close(); } }
老师,您讲的我理解了,就是先获得全局容器,获得里面存储的id值,如果有就给他删除,然后把session也给销毁掉,再把重新请求的session放入context这个全区容器里面,但是我写好后,还是没有完成此功能是什么原因呢老师
老师,我这样写,响应一个图片给客户端,为什么浏览器页面要先下载才能打开看?不是在页面直接显示吗?
public class RespByteServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { FileInputStream fis = new FileInputStream("d:/b1.jpg"); byte[] buff = new byte[fis.available()]; fis.read(buff); //设置响应类型 resp.setContentType("img/jpeg"); //从response对象中获取字节输出流对象 ServletOutputStream outputStream = resp.getOutputStream(); outputStream.write(buff); outputStream.flush(); outputStream.close(); } }
问题描述:
使用如下代码,i是5,5>2应该是true吧,但是浏览器没有输出if里面的内容:
结果只输出了两个<hr>的线,没有内容:
我百度了一下,网上是这样写的:
这样输出就是正常的:
请问老师这两种方法为什么第一种无法成功?
如果 i 是一个变量,假设i为一个每次都不同的随机数,比如:int i = new Random().nextInt(10) 这样的给i赋值,在这种情况下要实现上图if的功能代码应该怎么写?
老师这个自定义异常是在哪里学的,记不得了
老师,你好!这个地方不知道为啥有错误?能帮着解答一下吗?
这是我的前端代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <script> function but() { //创建XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); //给定请求方式以及请求地址 xhr.open("get","single.do"); //发送请求 xhr.send(); //获取服务器端给客户端的响应数据 xhr.onreadystatechange = function () { if(xhr.readyState == 4 && xhr.status == 200){ alert(xhr.responseText); //通过javaScript的内置对象JSON中的parse函数将JSON格式的字符串对转换成javascript对象 var obj = JSON.parse(xhr.responseText); alert(obj.userid+" "+obj.username); document.getElementById("span").innerHTML=obj.userid+"<br/>"+obj.username; } } } </script> </head> <body> <h3>ajax案例</h3> <span id="span"></span> <input type="button" value="ok" onclick="but()"> </body> </html>
这是后台代码
import com.bjsxt.pojo.User; import com.fasterxml.jackson.databind.ObjectMapper; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; @WebServlet("/single.do") public class SingalObject extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //创建Users对象 User users = new User(); users.setUserid(1); users.setUsername("oldlu"); //使用jackson的API将Users对象转换为JSON格式的字符串对象 ObjectMapper objectMapper = new ObjectMapper(); //将Users对象转换为JSON格式的字符串对象 String string = objectMapper.writeValueAsString(users); System.out.println(string); //设置响应类型为application/json resp.setContentType("application/json"); PrintWriter pw = resp.getWriter(); pw.print(string); pw.flush(); pw.close(); }
代码检查了好多遍但是不弹框报错500
请问这段打出前面的枚举的快捷键是什么呢
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637