HTML知识点:
Html怎么转换成jsp页面供程序员使用
1.首行加上代码
<%@ page language="java" contentType="text/html; charset=gbk"%>
2.重命名为jsp
table修饰代码
<table align="center" width="80%" border="1", style="border-collapse:collapse">
鼠标来去特效
<tr align="center" οnmοuseοver="this.bgColor='red'" οnmοuseοut="this.bgColor='white'">
<TH>与<TD>区别
同样是标示一个储存格,唯一不同的是<TH>所标示的储存格中的文字是以粗体出现
URL重写
jjj.jsp?参数名称=参数值&参数名称=参数值&参数名称=参数值
方法重写可以通过链接页面跳转传递参数,其作用和表单中的隐藏域作用一样。
跳转
服务器跳转和客户端跳转:
跳转之后地址没变,称为服务器跳转,地址改变称为客户端跳转。
跳转方式:
客户端跳转
setHeader() response.setHeader("refresh","2;url=ddd.jsp");属于客户端跳转
response.sendRedirect("DDD,JSP");客户端跳转,页面执行完毕之后再跳转,但是不能出传递request范围的属性。
服务器跳转
<jsp:forward page="ddd.jsp"/>;服务器跳转,属于无条件跳转,后面的内容不执行,故而数据库的关闭不能放在后面。
页面间的两种跳转
服务器跳转:
<jsp:forward page = "Page01.jsp"/>
超链接跳转
<a href = "dddd.jsp">sssss</a>
cookie
使用方法:Cookie c1 = new Cookie ("dd","ddd");
response.addCookie(c1);
Cookie c[] = request.getCookies();
for (int i=0;i<c.lengh;i++){
%>
<h3><%=c[i].getName()%>--><%=c[i].getValue()%></h3>
<%
}
%>
注意:发现浏览器关闭后,不能取得cookie内容,原因为其内容仅保存在浏览器中,并没有保存在本地,保存本地,其保存时间必需得到设置。
cl.setMaxAge(22);//插入此代码即可
out.println()
out.println()的换行去哪里了呢?这个换行只是针对于源文件中的换行,但是此换行会被HTML忽略掉,所以如果需要换行,可以直接编写html语句。
两种include指令
@include指令和<jsp:include>指令
语法格式为:
@include:<%@include file="页面名称"%>
<jsp:include>指令有两种格式:
语法一: <jsp:include page="页面"/>
语法二:<jsp:include page="页面1">
<jsp:param name="参数名称" value="值"/>//想页面1中传递参数,再包含在本页面中
......
</jsp:include>
四种属性
每种属性都有三种操作方法:
1.设置属性setAttribute(String name,Object value)
取得属性getAttribute (String name)
删除属性(removeAttribute)
2.属性范围
pageContext 范围仅本页面
范例:pageContext.setAttribute("name","mldn");//设置属性
String re = (String)pageContext.getAttribute("name");//取得属性
requset 属性范围表示在一次服务器跳转中有效,只要是服务器跳转,则设置的request属性可以一直传递下去,超链接则不行。
范例:request.setAttribute("name","dd");
String ddd = (Sring)request.getAttribute("name");
session 属性范围仅为一个客户,两种跳转都可以
范例:seesion.setAttriute("name","dddd");
String dddd = (String)seesion.getAttribute("ddd")
application 范围是在服务器上面设置一个属性,所以一旦设置后任何用户都可以浏览到此属性。如果在服务器上设置过多的Application属性,则会影响到服务器的饿性能。
乱码转换:
产生原因:
所有静态web的执行流程,是先从服务器上取得一个页面,之后通过把内同提交给服务器,之后服务器在提交的内容返回给客户进行显示。
设置page指令后,本页面输入的中文会得到正确的显示,但是接受到的从其他页面的参数却还是乱码,解决方法有两个:第一个直接把接受到的内容用服务器返回给客户的进行显示,即加上str=new String(str.getBytes("ISO8859-1"));//转码 第二种方法为:前面加上 request.getCharacterEnocoding("gbk");//按中文接受。两种方法的区别为:第一种是接受了再转换,第二种是转换了再接受。
接收多个同名参数
在表单中,存在复选框,接收方法如下:
<input type = "checkbox" name= "inst" value="a">a
<input type = "checkbox" name= "inst" value="b">b
<input type = "checkbox" name= "inst" value="c">c
若String inst = request.getParameter("inst");接收内容只为选项最前面一个,解决方法如下:String[] inst = request.getParameteValues("inst");//接收表单参数
<%
for(int i=0;i<inst.length;i++){
%>
<%=inst[i]%>、
<%
}
%>
配置tomcat虚拟目录。
1.文件目录结果必须为:
WEB TOOT/WEB-INF/WEB.xml。WEB.xml文件有格式要求。
可以拷贝D:\Tomcat 6.0\webapps\ROOT\WEB-INF里面的文件,但是注释内容去掉。
2.修改serve.xml
正确位置加上:<Context path="/demo" docBase="D:\webdemo"/>
3.conf/web.xml
listings下面false改为true,项目完成记得改过来。
登录代码
<%@ page contentType="text/html;charset=GBK"%>
<h1>系统登录</h1>
<form action="" method="post">
用户名:<input type="text" name="name">
密 码:<input type="password" name="password">
<input type="submit" value="登录">
</form>
<%
String name = request.getParameter("name");
String password = request.getParameter("password");
//假设用户名是abc,密码是123
if(!(("".equals(name)||name==null)&&("".equals(password)||password==null))){
if("abc".equals(name)&&"123".equals(password)){
session.setAttribute("name",name);//登录了设置session
response.sendRedirect("welcome.jsp");
}else{
%>
<h3>错误的用户名或者密码!</h3>
<%
}
}
%>
if(!(("".equals(name)||name==null)&&("".equals(password)||password==null)))
这条很重要!
String转换
package com.zcy;
/**
* @author yangzhi
*
*/
public class Test04 {
public static void main(String[] args) {
String str1 = "10";
String str2 = "10.2";
String str3 = "boolean";
//与基本数据类型对应的有八个包装类
int a = Integer.parseInt(str1);
System.out.println(a);
float b = Float.parseFloat(str2);
System.out.println(b);
boolean c = Boolean.parseBoolean(str3);
System.out.println(c);
}
}
输入输出
package com.zcy;
import java.util.Scanner;
/**
* 测试输入输出
* @author 杨志
*
*/
public class Test03 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int age;
float money;
String name;
System.out.println("请输入您的姓名:");
name = input.next();
System.out.println("请输入您的年龄:");
age = input.nextInt();
System.out.println("请输入您的工资:");
money = input.nextFloat();
System.out.println("name = "+name);
System.out.println("age = "+age);
System.out.println("money = "+money);
}
}
方法的说明符
方法的访问说明符
1.public 任何地方都可以访问
2.protected 子类或者同包,同类可以访问,但是其它包的非子类不可以访问
3.default 只有同类或者同包可以访问
4.private 私有的方法,这里的私有指的是被被class所私有,其他类不能访问,继承的类也不行。
方法的其他说明符
1.static
2.final 此方法不可以被子类覆盖。
3.abstract 抽象的方法
4.native 用户可以使用,但是不能编写的类。
5.synchronized 同步的方法
面向对象
面向对象的程序开发实际上分为三种:OOA OOD OOP
|-OOA:面向对象的分析
|-OOD:面向对象设计
|-OOP:面向对象程序
三大特性:封装、继承、多态。
对象的创建及使用:Person zcy = null;//声明对象 zcy=new Person();//实例化对象 Person zcy = new Person();
方法不需要创建,直接使用。
封装性
封装性有很多体现,但是最简单的体现是假如“private”关键字。
循环
处理次数用for,处理量的时候用while,while可以执行0次,do while至少执行1次
javaBean
javaBean的两种引用方法:
第一种:先引入类,然后创建对象,代码如下
<%@ page import="org.lxh.demo.Simple"%>
Simple simple = new Simple();
第二种:用jsp中的标签指令:
<jsp:useBean id="simple" class="org.lxh.demo.Simple" scope="page"/>
其中simple指的是对象,class指的是类,scope:javabean的保存范围,page、request、session、application