个人笔记~

这篇文章详细整理了JAVAWeb开发中的关键概念,包括Tomcat的配置,JSP的七大元素和九大内置对象,GET和POST请求的区别,重定向与转发的差异,以及Servlet的生命周期和初始化。此外,还讨论了作用域对象的使用和登录处理流程。
摘要由CSDN通过智能技术生成

个人笔记整理

(就是简简单单地把CSDN当作一个可以随时随地整理笔记的工具,不喜勿喷~)
在这里插入图片描述

Tomcat的配置:

端口,部署项目(两种webapps:在conf/server.xml:标记下配置)

Jsp元素:

七大元素:html,注释(有html注释和jsp注释两种,这两种区别就是一种会在网页源码部分显示一个只会在自己代码端显示),scriptlet,小脚本,表达式,动作和指令。

内置对象

九大内置对象:

request,response,out
session,application
pageContext,page,config,exception

作用域对象:

setAttribute(“key”,“val”);和getAttribute(“key”);
pageContext,request,session,applcation

get和post的区别

1.传参方式不同:

get:地址栏传参;post:隐式请求体方式提交传参

2.安全性不同:

get安全性差;post安全性较好(相对来讲)

3.长度

get:小量数据
post;大量数据(文件)

4.网页收藏或邮件发送:

get带参数收藏,post不可以

两种跳转(重定向和转发)的区别

1.地址栏:

重定向地址栏改变;转发地址栏不变

2.请求数据:

重定向不共享请求对象及数据;转发可以共享

3.跳转方式:

重定向是客户端的跳转,发起两次请求
转发是服务器端的跳转,仅发起一次请求

作用域对象的区别

pabeContext(不常用),request,session,application
pageContext:范围在当前页面及静态包含页面
request:转发页面
session:一次会话
application:整个web容器

嘿嘿~

登录

<%--
  Created by IntelliJ IDEA.
  User: 我的电脑
  Date: 2023/2/7
  Time: 15:57
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录</title>
</head>
<body>
<%--form是提交数据的基本单位--%>
<form action="doLogin.jsp" method="post">
    <p>
        用户账号:<input type="text" name="username">
    </p>
    <p>
        用户密码:<input type="password" name="password">
    </p>
    <p>
        <input type="submit" value="立即登录">
    </p>
    <%
    String msg=(String) request.getAttribute("message");//强转成字符串
    msg=msg==null?"":msg;//判断

    %>
    <span style="color: red;"><%=msg%></span>>
</form>
</body>
</html>

登录的处理

<%--
  Created by IntelliJ IDEA.
  User: 我的电脑
  Date: 2023/2/7
  Time: 16:12
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录的处理</title>
</head>
<body>
<%!
String uname="wu";
String upass="123456";
%>
    //这块代码块有写转发和重定向的一点区别
<%
    //获取客户端提供过来的参数
    String username= request.getParameter("username");
    String password= request.getParameter("password");
    //和数据库中的数据进行对比
    if(uname.equals(username)&&upass.equals(password)){
        //out.print("恭喜登录成功!");
        //登录用户信息,保存到session作用域对象中,用来实现会话跟踪
        session.setAttribute("username",username);

        //跳转到首页index.jsp
        response.sendRedirect("index.jsp");//重定向到index.jsp
}else{
        //out.print("用户名或密码错误,请重新输入!");
        //回去登录,带提示信息
        //response.sendRedirect("login.jsp");
         request.setAttribute("massage","用户名或密码提示错误!");
        //转发
        request.getRequestDispatcher("login.jsp").forward(request,response);
    }
    //重定向和转发的区别
%>
</body>
</html>

查看自己所做网站被浏览次数

<%--
  Created by IntelliJ IDEA.
  User: 我的电脑
  Date: 2023/2/22
  Time: 16:11
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>网站访问次数</title>
</head>
<body>
      <%
          //从application中取出计数的变量
          Integer count=(Integer) application.getAttribute("count");
          if(count==null){
              count=0;
          }else {
              count++;
          }
      %>
</body>
</html>

JSP的执行过程

JSP的本质是servlet,第一次被访问时,转译成.java文件,再编译成.class文件,加载到tomcat运行。可以在tomcat目录下的work文件夹下找到源码及字节码文件。
JSP整个运行过程中,JSP对象只创建一次

网页出现问题所提示数字的意义

响应状态码

404:该资源不存在
500:服务器代码异常
200:页面访问成功
405:对应的方法没有定义
403:拒绝访问

问题404:排查

1.先查看tomc启动是否异常
2.检查tomcat的部署

Servlet

1.定义Servlet

自定义一个类,继承HttpServlet

2.配置
web.xml方式
<servlet>
        <!--逻辑名-->
        <servlet-name>login</servlet-name>
        <servlet-class>com.wdzl.servlet.LoginServlet</servlet-class>
    </servlet>
        <!--对Servlet进行映射-->
        <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/login</url-pattern>
        </servlet-mapping>
注释方式

在Servlet 类上方配置注释

@WebServlet("/login")

lalala~

/**
 *注释配置
 *Servlet       方法
 * 实例化        构造方法(1次)
 * 初始化        init()  (1次)
 * 服务          service() (多次)
 * 销毁          destroy()  (1次)
 */

@WebServlet(value = "/reg")
public class RegisterServlet extends HttpServlet {
    public RegisterServlet(){
        System.out.println("构造了===");
    }

    @Override
    public void init() throws ServletException {
        System.out.println("init()");
    }

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("service()");
    }

    @Override
    public void destroy() {
        System.out.println("destroy()");
    }
}

service()和doGet()及doPost()的关系

每次请求会先调用service()方法,在service()方法中调用mathod,判断是get还是post(需要用时会提示405)再调用doGet或doPost

init()初始化

//有两个方法,一个有参一个无参
 public void init(ServletConfig config) throws ServletException {
 //获取web.xml中配置的初始化参数
 }

如何获取application对象

 request.getServletContext()Servlet中调用getServletContext()

页面显示乱码

    //页面内容乱码
    resp.setContentType("text/html;charset=UTF-8");//必须放在getWriter();之前
    //获取out
    PrintWriter out = resp.getWriter();

Servlet实例化和初始化时间

默认情况下,第一次被访问时,才有实例化和初始化
自定义Servlet加载实例化初始化的时机和顺序

该说不说我设置的这个背景图片还真挺好看!嘿嘿~

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨桐Miracle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值