2021-07-29

cookie

cookie是将数据保存到客户端,来实现多次请求的数据共享

cookie是一个普通类

由响应对象使用addcookie的方法添加cookie对象

请求对象使用getcookies得到所有的cookie对象

cookie的属性:name、value、path(cookie路径)、domain(域名)、maxage(存活时间)

注意细节:

name:字母加数字

数量:一个网站最多20个cookie对象,存储大小不能超过4kb,所有的网站不能超过300个

存活时间:0代表立即清除 负整数代表当前对话有效是存活时间

访问 路径:取自第一次访问的资源路径前缀 可以共享cookie

     //设置响应的文本格式
            resp.setContentType("text/html;charset=utf-8");
    
            //通过响应对象写一个提升信息
            resp.getWriter().write("欢迎访问本网站,你上次访问的时间是:");
    
            //创建Cookie对象 指定name和value
            Cookie cookie = new Cookie("time",System.currentTimeMillis()+"");
    
            //设置最大存活时间
            cookie.setMaxAge(3600);
    
            //通过响应对象将Cookie对象添加到客户端
            resp.addCookie(cookie);
    
            //通过请求对象获取Cookie对象
            Cookie[] arr = req.getCookies();
    
            //写出访问时间
            for (Cookie cookie1 : arr) {
                if (cookie1.getName().equals("time")){
                    String value = cookie1.getValue();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
                    String format = sdf.format(new Date(Long.parseLong(value)));
                    resp.getWriter().write(format);
                }
            }

session

Httpsession:会话域 就是同一次会话中多次请求的作用域

服务器会话管理技术

常用方法:getAttribute、setAttribute、remoteAttribute、getId、invalid:这个是让session理解失效

获取session:用req.getSession()获取session对象

getSession():里面参数可以是true和false,如果是true的话,当使用该方法得到session对象时,先会查看是否会携带jsesessionid,如果带了,根据这个id去服务器内存空间查找是否有该httpsession对象,如果有就这个对象,拿到这个对象可以继续使用,如果没有,就创建一个对象并分配一个jsesessionid给该对象给其使用;如果没有带id的话,创建一个session对象并分配一个jsesessionid发送给客户端使用

如果是false的话,如果没有jsessionid或者没有找到携带jsesessionid的httpsession对象就不会去创建对象

使用,当客户端发起请求是,servlet接收到请求并且处理(设置一个键值对给session对象),然后接着客户端再次发起请求给另外一个servlet接收了,当前servlet就可以使用前面一个servlet的session对象了。

jsp

java server page 动态网页技术标准

本质是一个servlet 可以使用HTML和java语法 但是要配合<%%>使用

语法:

  <% num=1 %> <%--局部变量num=1--%>
    <%! num=1 %> <%--成员变量 num=1--%>
    <%= 内容 %> <%--向浏览器输出内容--%>
    <%--局部变量直接用名字  成员变量则使用this.num--%>
    <%-- 变量一个集合案例 --%>
    <%-- 注意:html标签在jsp中是不需要加<%%>的,可以直接使用java语法需要添加<%%>配合使用 --%>
    <% 
            ArrayList<Student> list = (ArrayList<Student>)session.getAttribute("list");
            System.out.println(list);
            for (Student stu : list) {
        %>
        <tr>
            <td>
                <%=stu.getStuname()%>
            </td>
            <td>
                <%=stu.getSid()%>
            </td>
            <td>
                <%=stu.getScore()%>
            </td>
        </tr>
    
        <%
            }
        %>

jsp指令

在这里插入图片描述

jsp的九大隐式对象

request、response、pagecontext、session、page、out、application、config、exception

pagecontext可以获取其他的八大隐式对象

application是servletcontext对象

out输出对象

四大域对象:

servletContext:应用域对象 最大的

servletrequest:请求域对象 ----链

httpSession:会话域对象—一次会话发起的多次请求

pagecontext:当前页面的作用域

mvc

m:model 封装数据模型

v:view 视图 动态 jsp 静态html

c:controller 控制器 处理相应和请求
在这里插入图片描述
一般在写完一个jsp页面提交会跳转到servlet控制器,然后servlet控制器操作完了在跳转带jsp页面。

<think>好的,我现在遇到了一个npm运行时的错误,提示“Missing script: 'dev’”。我需要解决这个问题。首先,我应该理解这个错误的原因。通常,当在package.json文件的scripts部分中没有定义对应的脚本时,运行npm run dev就会报这个错误。 首先,我需要检查项目的package.json文件是否存在,以及其中的scripts字段是否有dev这个脚本。如果用户的项目中没有正确配置dev脚本,或者package.json文件本身有错误,比如格式不正确,都可能导致这个问题。 接下来,我应该回忆常见的解决方法。根据之前看到的引用[2]中的内容,当遇到node版本或其他依赖问题时,可能需要重新安装依赖或调整package.json。但这里的问题更直接,是脚本缺失。所以可能的解决步骤包括: 1. 检查package.json中的scripts部分,确认是否有dev脚本的定义。如果没有,需要手动添加,例如:"dev": "vite"或其他适合项目的命令,如webpack serve等。 2. 如果用户的项目使用像Vue或React这样的框架,可能需要安装对应的脚手架工具,或者检查是否有配置文件缺失。例如,Vite项目通常会在scripts中定义dev命令。 3. 如果package.json存在语法错误,比如缺少逗号或引号,npm可能无法正确解析,导致脚本无法识别。此时需要修复JSON格式。 4. 有时候可能需要重新安装node_modules,因为损坏的依赖可能导致脚本无法正确加载。删除node_modules和package-lock.json后重新执行npm install可能有效。 5. 如果用户使用的是旧版npm,某些脚本的注册可能会有问题,更新npm版本也可能有帮助。 另外,可能需要考虑用户的项目类型。例如,如果用户在使用Vue CLI创建的项目,dev脚本可能被start或serve替代。或者,用户可能错误地删除了脚本配置。需要指导用户正确配置脚本。 根据引用[2]中的步骤,比如删除node_modules,重新安装依赖,可能也是相关的,尤其是当依赖安装不完整时,某些命令行工具可能没有正确安装,导致脚本执行失败。例如,如果dev脚本依赖于某个包(如vite或webpack-dev-server),而这些包未安装,那么即使脚本存在,运行也会失败。这时候需要确保相关依赖在devDependencies中正确安装。 总结可能的解决方案步骤: 1. 检查并修正package.json中的scripts部分。 2. 确保必要的开发依赖已安装。 3. 清理并重新安装依赖。 4. 检查JSON语法是否正确。 5. 更新npm版本。 需要将这些步骤以清晰的方式呈现给用户,同时指出可能的具体操作,例如如何编辑package.json,如何运行安装命令等。此外,可能需要根据用户的具体框架(如React、Vue等)给出更具体的建议,比如使用create-react-app或vue-cli-service等工具生成的默认脚本配置。</think>要解决`npm run dev`命令中出现的“Missing script: 'dev'”错误,需检查并确保`package.json`中已正确定义`dev`脚本。以下是分步解决方案: ### 1. 确认`dev`脚本是否存在于`package.json` 打开项目根目录下的`package.json`文件,检查`scripts`字段是否包含`dev`命令。 **示例正确配置**: ```json { "scripts": { "dev": "vite", // 或"webpack serve"、"react-scripts start"等 "build": "vite build" } } ``` - 若没有`dev`脚本,需手动添加。具体命令取决于项目框架(如Vite、Webpack、React等)[^1]。 --- ### 2. 安装必要的开发依赖 若`dev`脚本依赖特定工具(如`vite`或`webpack-dev-server`),需确保已安装对应包: ```bash # 以Vite为例 npm install vite --save-dev # 或Webpack npm install webpack webpack-dev-server --save-dev ``` --- ### 3. 清理并重新安装依赖 依赖损坏可能导致脚本无法识别,尝试以下步骤: ```bash rm -rf node_modules # 删除旧依赖 rm package-lock.json # 清除锁定文件(谨慎操作) npm install # 重新安装依赖 ``` --- ### 4. 检查`package.json`语法 JSON格式错误(如缺少逗号或引号)会阻止脚本解析。使用工具验证语法: ```bash npm pkg get scripts # 验证是否能正确读取scripts字段 ``` - 推荐使用[JSONLint](https://jsonlint.com/)在线校验。 --- ### 5. 更新npm版本 旧版npm可能存在兼容性问题,更新至最新版: ```bash npm install -g npm@latest ``` --- ### 6. 框架特定配置(示例) - **Vue/React项目**:若通过脚手架创建,尝试恢复默认配置: ```bash npx create-react-app my-app --template typescript # React示例 ``` - **Vite项目**:确保`vite.config.js`存在且`dev`脚本指向正确命令。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值