JSP学习与尝试
JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 (简单理解就是在Java代码之中写入html标签,和在学习前端的过程中学习的JavaScript有些类似,但是经过查询后,两者还是有很大差别:
1.Jsp是一种动态网页技术标准也是JAVAEE的标准
2.JavaScript是脚本语言,用于前端交互,而且应该是在html中写入java(好吧,最大区别是前端和后端)
(1)JSP和Java servlet
1.JSP事实上就是一种servlet,但是JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句(使用Jsp只需要完成程序员需要输出到客户端的内容)
2.servlet擅长逻辑控制,Jsp擅长页面显示
3.Web容器会把Jsp翻译为可识别的类
(2)JSP运行
(3)jsp编写中所遇到的问题
1.最重要的应该是如何正确建立一个jsp项目(其中包括后续Module的配置,Tomcat的配置)
我是在经历了自己创建运行失败多次找到的教程,记下来比较好:用IDEA创建jsp文件
2.在对tomcat 进行配置时出现的Tomcat deployment 下没有Artifact,在这种情况下jsp文件无法进行“run"操作
解决方法
3.getRequestDispatcher红字显示错误
错误提醒:cannot resolve method"xxxxx"
解决办法:添加Tomcat
解决方法方法2;
4.有关跳转页面的问题
在设计中如果密码错误就会跳转到login页面,其中我觉得应该有两种形式:
else{
request.setAttribute("usertext","密码与账号名不符合!");
//(1)request.getRequestDispatcher("login.jsp".(request,response));
//(2)<jsp:forward page = "login.jsp"></jsp:forward>
}
但是事实上,
Rename reference?
后来我去查找了一下具体用法,修改为:
就正确了。
除了以上两种,还有代码: response.sendRedirect(“xxx.jsp”);
有关它们的区别:
1.response 客户端跳转
2.forword做标记,服务器跳转
3.requestDispatcher类 服务器跳转
有关jsp指令分享的文章:
jsp常见指令总结
5.有关jsp文件防止乱码的问题
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String name=request.getParameter("username");
String password=request.getParameter("password");
request.setCharacterEncoding("gb2312");
对,就是它们!
(4)本次作业设计
1.三个jsp实现登录,它们分别为:
login.jsp:负责登陆页面
doIt.jsp:负责登录过程问题处理和成功进行后的跳转
success.jsp:计算器的运行,引入了一个beans包,包中的computerBeans里写有运算过程的具体实现,在success中用useBean方法进行了调用
具体代码:
login.jsp:
<%--
Created by IntelliJ IDEA.
User: 石
Date: 2020/5/23
Time: 10:44
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登陆页面</title>
</head>