Tomcat和JSP核心内容

Tomcat和JSP核心内容

1.直接到Tomcat官网目下进行下载【下载完成后直接解压即可】

2.在安装目录中打开bin目录找到startup.bat,双击启动

3.在浏览器的地址栏中输入:localhost:8080/127.0.0.1:8080 访问即可
4.tomcat的配置方式与Java的JDK配置方式是一样的

1.1 Tomcat启动常见问题

闪退现象:双击startup.bat文件时,黑窗口一闪而过。

通常是因为JDK环境配置不符合规范,tomcat在运行时会自动去系统环境中去查找一个叫JAVA_HOME的变量

启动报错:通常是因为指定的端口服务已经启动了,再次启动时就会出现该问题

特殊情况:电脑刚重启,就打开了一个tomcat的启动选项,仍然提示端口被占用,可能是因为系统中有其他的应用占用了默认的8080端口

1.查找所有端口号对应的服务

2.关闭该端口号对应的应用服务id(PID)

命令:taskkill /f /t /im "PID的值"
taskkill /f /t /im "1648"
2. JSP核心内容
2.1 软件系统架构

软件系统架构指的是要开发的软件对应的方向(web端、移动端),主要有两种架构,B/S及C/S架构

B/S架构:browser and Server 浏览器与服务器架构模式,例如:天猫、京东、后台管理类,简单点说:在网页端运行的都是B/S架构

优缺点:携带不方便、不需要下载、不需要频繁更新、数据都在服务器上(安全)

C/S架构:Client and Server 客户端与服务器架构模式,例如:微信、钉钉、qq、王者等,简单点说:手机上运行的APP都是C/S架构

优缺点:携带方便、需要下载、频繁更新、数据再客户端上存储(不安全)、效率高、速度快

2.2 JSP介绍

jsp是一个动态网页标准技术,允许在前端的页面中嵌入Java代码,jsp的执行原理:先进行翻译,在进行编译,最后执行

2.3 JSP的基础语法
语法描述
<%%>小脚本(嵌入java代码)
<%=%>在网页中输出java变量
<%!%>在网页中定义方法
<%@ %>指令
2.4 JSP的内置对象

jsp中默认支持的对象,可以直接拿来使用的

对象名描述
out网页输出对象
page当前页对象
request请求对象
response响应对象
session会话
application全局对象(上下文对象)
exception异常处理对象
pageContext页面上下文对象
config配置对象
2.4.1 jsp页面创建
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>jsp</title>
  </head>
  <body>
   hello jsp!!
   <hr>
    jsphaha
  </body>
</html>
2.4.2 web项目启动

idea中配置Tomcat

给Tomcat服务配置需要运行的项目

2.4.3 out对象
<%
String str = "haha";
//使用out对象输出,只能在脚本中使用
out.print(str);
%>
<%--还可以结合前端使用--%>
str:<%=str %>

求最大值

<%!
  public int max(int x,int y){
  return x>y?x:y;
}
%>
最大值:<%=max(5,6) %>

jsp显示当前日期

<%@ page import="java.util.Date,java.text.SimpleDateFormat" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        //在网页中显示当前的日期
        Date date = new Date();
        //对日期进行格式化操作
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String showTime = sdf.format(date);
    %>
    当前时间为:<%=showTime%>
</body>
</html>
2.4.4 request对象

用户发送的所有的请求都是通过request对象实现,request中携带了请求的地址、参数等等

方法名描述
getParameter(String key)获取参数
setCharacterEncoding(String encoding)设置请求编码
getRequestDispatch(String path).forward(req,resp)请求转发

登录案例(用户发送登录请求,后台获取用户发送的请求参数)

//login.jsp
<%--
  action指定表单信息发送的服务器地址
  method指定发送请求的方式
  --%>
<form action="control.jsp">
  <input type="text" name="uname" placeholder="请输入用户名">
  <input type="password" name="pwd" placeholder="请输入密码">
  <input type="submit" value="登录">
</form>
//control.jsp
//获取请求中携带的信息
String uname = request.getParameter("uname");
String pwd = request.getParameter("pwd");

中文乱码处理方案

//中文乱码处理方案1(get请求):new String(uname.getBytes("ISO-8859-1"),"utf-8")
示例:uname = new String(uname.getBytes("ISO-8859-1"),"utf-8");
//中文乱码处理方案2(post请求)
示例:request.setCharacterEncoding("utf-8")
//中文乱码处理方案2(修改tomcat配置)
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URLEncoding="utf-8"/>

请求转发:将该请求转发给其他控制层处理,用户发送的一次请求,进行了多次转发

例如:小张需要一万块,自己没钱,他向支付宝借了一万块,但支付宝本身是没钱的,但是支付宝向银行借了一万块给了小张

//判断用户信息是否正确,转发到对应的页面
if("admin".equals(uname)){
//请求转发到success.jsp
request.getRequestDispatcher("success.jsp").forward(request,response);
}else{
request.getRequestDispatcher("error.jsp").forward(request,response);
}

request特点

1.一次请求,多次转发

2.请求转发后,地址栏中的地址不发生改变

3.request请求转发可以携带参数

通过request对象设置参数

//设置参数
request.setAttribute("msg","登录成功");
//获取参数
Object msg = request.getAttribute("msg");

request中getParameter()和getAttribute()区别

<%
//getParameter()用于获取表单或直接在地址栏中拼接的参数
String uname = request.getParameter("uname");
//getAttribute()只能获取通过setAttribute()设置的参数
Object msg = request.getAttribute("msg");
%>
2.4.5 response对象

response作为服务端响应给客户端的过程,仅仅只是将服务端的请求重定向给了另一个地址

例如:小张向小王借一万,小王说我没有,你可以向支付宝借,小张就向支付宝借了一万

方法名描述
sendRedirect(url)重定向

登录案例(需要注意重定向时地址栏中的变化及参数携带问题)

<%
	String uname = request.getParameter("uname");
	String pwd = request.getParameter("pwd");
	if("admin".equals(uname)){
    //重定向
    response.sendRedirect("success.jsp");
  }else{
    response.sendRedirect("error.jsp");
  }
%>

response的特点

1.至少两次请求

2.地址栏中的地址会发生改变

3.不能携带参数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值