JAVA课堂随记(持续更新)
4.13笔记
注释有3种:
1,文档注释: /** * */
2,// 单行注释
3,/ * … * / 多行注释
=====================================================
JSP是什么:
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,一种动态网页技术标准
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="errorPage.jsp" %> //页面指令,java语言的,下面这些内容输出到html是文本格式的, 页面的编码是utf-8,错误提醒页面
<head> <meta charset="UTF-8"> <title>测试页面</title> </head> //为了防止出现乱码,要在<head>里加上一个<meta charset="UTF-8">
=========================================================
JSP有9个内置对象out,request,response,Page,pageContext,exception,config,application,session.
pageContext:用来存页面上下文信息.
exception:异常对象
注:404找不到资源,500是代码错误
错误页面的写法
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true" %> <html> <head> <meta charset="UTF-8"> <title>测试页面</title> </head> <body> 不好意思,出错了 <% response.getWriter().println(exception.getMessage()); %> </body> </html>
<%= 简单的代码%>//是用来显示输出的
//访问计算量的代码编写 Integer count =(Integer) application.getAttribute("count");//页面访问次数计算代码 if(count == null){ count = 0;//如果访问次数为空,那么赋值为0 } count = count +1;//每次访问都加1 application.setAttribute("count",count); response.getWriter().println("访问次数"+count);
4.14笔记
一个页面需要:banner条,导航条,版权声明。
我们需要声明一个方法包含它们。
页面共享include:有静态,有动态
<%@ include file="header.jsp"%>//把需要的页面给包含进来 ,编译为指令嵌进去,在编译的时候起作用
<img src="./images/bd_logo1.png" width="500" height="200"><br> //这是图片添加的代码,需要把图片放在同路径images,设置长宽
<h6>版权所有©right;2班45</h6> //声明版权所有 <a href="">首页</a> //这是词条的设置 在index.jsp中<% int i =100 %>,然后在header.jsp<%=i %>结果是可以输出 <jsp:include page="<%=includePage%>" />动作,在运行的时候起作用,独立的servlet <jsp:forward page="forward.jsp"></jsp:forward>跳转页面,相当于进入新的页面
赋值符只有在运行的时候才起作用
<form action="" name="login" method="post">//创建表单 <input type="text" name="loginName"> <input type="submit" value="提交">//创建提交按钮 </form>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="errorPage.jsp" %> <html> <body> <img src="./images/bd_logo1.png" width="500" height="200"><br> <form action="" name="login" method="post"> <input type="text" name="loginName"> <input type="submit" value="提交"> </form> <a href="">首页</a> <a href="">新闻</a> <a href="">产品</a> <a href="">其他</a> <a href="">关于</a> </body> </html>
4.20笔记
Servlet:写java代码,比较方便,可读性比较好,如果在页面上显示比价麻烦,显示的时候比较简单,如果要处理业务逻辑比较麻烦。
JSP Model2采用jsp+Servlet+JavaBean技术,此技术将原本JSP页面中的流程控制代码提取出来,封装到Servlet中,从而实现了整个程序页面显示,流程控制和业务逻辑的分离
MVC:模型(model)+视图(view)+控制器(controller)
model访问不了view,view也访问不了model
做一个完整的登录页面(内含登录成功,登录失败的跳转页面)
//这是登录页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="../../errorPage.jsp" %> <html> <head> <meta charset="UTF-8"> <title>测试页面</title> </head> <body> <form action="./login" name="login" method="post"> 登录名称:<input type="text" name="loginName"><br> 登录密码:<input type="password" name="loginPwd"><br> 验证码:<input type="text" name="validCode"><img src="./captcha" width="100" height="60"><br>//验证码验证 <input type="submit" value="登录">//登录的按钮 <input type="reset" value="取消">//取消的按钮 </form> </body> </html>
这是登录成功的页面显示
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 这是我们的主界面,你好:<%=request.getAttribute("name")%>//通过传参数把 用户名字传进来 </body> </html>
这是登录失败的页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 登录失败,原因是 <%=request.getAttribute("msg")%>请<a href="login">重新登录</a> //通过传参数把登录失败的原因显示出来,并重新加载登录页面 </body> </html>
这是登录页面的JavaServlet代码
package cn.edu.mju.project2.comtroller; import cn.edu.mju.project2.utils.StrUtils; import javax.servlet.ServletContext; 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; @WebServlet("/login") public class LoginController extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ String msg = req.getParameter("msg"); req.setAttribute("msg",msg); req.getRequestDispatcher("/WEB-INF/template/login.jsp").forward(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String loginName = req.getParameter("loginName"); String loginPwd = req.getParameter("loginPwd"); String validCode = req.getParameter("validCode"); String saveCode = (String)req.getSession().getAttribute("code"); ServletContext application = this.getServletContext(); application.setAttribute("c",1); //登陆名称是你的学号,密码是1234,那么显示下面的内容,否则,显示账户密码错误 String msg =null; if(StrUtils.isBank(validCode)){ loginFail(req,resp,"请输入校验码"); }else{ if(validCode.equals(saveCode)){ if("45".equals(loginName) && "123456".equals(loginPwd)){ req.getSession().setAttribute("name",loginName);//传loginName给name resp.sendRedirect("main"); req.setAttribute("name",loginName); req.getRequestDispatcher("/WEB-INF/template/main.jsp").forward(req,resp); }else{ msg = "账号密码错误!"; loginFail(req,resp,"账号密码错误!"); } }else{ loginFail(req,resp,"校验码输入错误"); } } } //声明登录失败原因的方法 private void loginFail(HttpServletRequest req, HttpServletResponse resp,String msg) throws ServletException, IOException{ req.setAttribute("msg",msg); resp.sendRedirect("/login?msg="+ msg); }
- Java Web 课堂笔记整理(持续不定时更新)
- Java 与 C++ 不一样的地方(持续更新中...)
- JAVA模式(持续更新)
- 深入理解Java之《突破程序员基本功》之类集框架 ---------读书笔记------持续更新
- 必备排序算法详解(java代码实现,图解,比较等,持续更新中)
- JAVA学习笔记(持续更新...)
- java的学习 持续更新
- Ubuntu中关于java尤其是Netbeans的注意事项(持续更新)
- java开发中用到的技术(持续更新.....)
- Java进阶之欧拉工程 第四篇【持续更新】
- Java中DateUtil工具类(持续更新中)
- Java常用数据类型转换(持续更新)
- JAVA编程题(持续更新中。。。)
- Java9教程(持续更新...)
- java实用知识点[持续更新]
- java面试知识迷你版--持续更新中
- Java学习资料汇总(吐血分享)----持续更新中
- Java工程师常见面试题集锦(二)互联网人必看!(附答案及视频教程,持续更新)
- java日期操作【持续更新中……】
- java io流 持续更新