javaWeb基础1

B/S架构

程序架构

设计通过远程访问服务器的架构时,有两种程序架构:C/S和B/S。

C/S的典型使用是PC端上的QQ软件。B/S的典型例子是使用浏览器访问淘宝页面。

工作原理

在这里插入图片描述

URL

计算机通过统一资源定位符URL(Uniform Resource Locator)实现资源访问。它是唯一能识别Internet上具体的计算机、目录或文件夹位置的命名约定。
URL从左到右分为四个部分:协议部分,主机地址,目标资源地址,传递的参数。

Web服务器

Web服务器是可以向发出请求的浏览器提供文档的程序,它提供网上的信息浏览服务。

  • 常用的Web服务器
  • Microsoft:IIS
  • Apache:Tomcat
  • Oracle:WebLogic
  • IBM:WebSphere
  • Nginx

jsp概述

jsp简介

JSP(Java Server Pages)是运行在服务器端的Java页面,它是用HTML嵌套Java代码实现。

工作原理

在这里插入图片描述

使用jsp实现输出

  • 使用<%@ %>来设置一个jsp页面的属性
    ⚫可以通过import来导入java包
    ⚫可以设置字符编码集
  • <%out.print();%>或<%out.println(); %>和<%= %>实现页面输出。
  • JSP可以添加的注释:
    ⚫ HTML注释:<!–HTML注释-- >
    ⚫JSP注释:<%–JSP注释–%>
    ⚫JSP脚本中注释:<%//单行注释%>、 <%/多行注释/%>
jsp输出的理解

一个jsp中的文件代码可以先被看做在主函数中的java代码,这些代码在控制台上打印的内容再被视为html处理。

Java和html混写
<html>
<head>
<meta charset="UTF-8">
<title></title>
<%
List names=new ArrayList();
names.add("jack");
names.add("rose");
names.add("tom");
List ages=new ArrayList();
ages.add(20);
ages.add(19);
ages.add(18);


%>
</head>
<body>
<!-- 项目页面中输出一个表格 -->
<!-- java 代码中输出html标签 -->
<%

out.print("<table>");
out.print("<tr><td>编号</td><td>姓名</td><td>年龄</td></tr>");
for(int i=0;i<names.size();i++){
	out.print("<tr><td>"+i+"</td><td>"+names.get(i)+"</td><td>"+ages.get(i)+"</td></tr>");
}

out.print("</table>");

%>

<hr />
<!-- 上面是使用Java来输出html标签 -->
<!-- 一般情况下推荐将Java代码和html标签分离 -->
<table>
<tr><td>编号</td><td>姓名</td><td>年龄</td></tr>
<%
for(int i=0;i<names.size();i++){
%>
	<tr><td><%=i %></td><td><%=names.get(i) %></td><td><%=ages.get(i) %></td></tr>
<%} %>
</table>

<%
Map<Integer,String> cts = new HashMap<Integer,String>();
cts.put(1, "玩具");
cts.put(2, "文具");
cts.put(3, "书籍");
%>


</body>
</html>

Web程序常见错误:

  • 404错误—找不到访问的页面或资源
    ⚫运行时,URL输入错误
    ⚫将页面放在WEB-INF下
    ⚫外部启动Tomcat,未部署项目
  • 500错误----JSP页面代码有误
    ⚫JSP页面代码有错误
  • 页面无法显示
    ⚫未启动Tomcat

jsp页面之间实现数据的传递

表单提交数据

表单提交数据的简单例子
<form action="/web02/login1.jsp" method="get">
用户名称:<input type="text" name="cu_name" /><br />
用户电话:<input type="password" name="cu_phone" /><br />
<!-- checkbox后面怎么拿 -->
兴趣爱好:
<input type="checkbox" name="happy" value="1" />足球
<input type="checkbox" name="happy" value="2" />篮球
<input type="checkbox" name="happy" value="3" />网球
<input type="checkbox" name="happy" value="4" />排球
<br />
<input type="submit" value="登录" />
</form>

注意: 无论是action根据绝对路径还是相对路径跳转,均可以跳转成功。

提交数据的方式
比较项getpost
参数出现在URL中
长度限制
安全性
URL可传播

request和response

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");

String cu_name=request.getParameter("cu_name");
String cu_phone=request.getParameter("cu_phone");
// 假设 用户名是刘德华 密码是9999
// 正确 跳转至欢迎页面,如果不正确 则返回登录页面
if("刘德华".equals(cu_name) && "9999".equals(cu_phone)){
	// 跳转到欢迎界面
	//System.out.println(cu_name);
	//response.sendRedirect("/web02/welcome.jsp?cu_name="+cu_name);  //显示的将用户名传递
	//.getRequestDispatcher("")将页面跳转 里面接受页面的跳转地址
	//.forward(request, response) 将当前页面中的 req和resp两个对象 直接传递给下一个页面
	request.getRequestDispatcher("welcome.jsp").forward(request, response);
	// 注意 对于服务器的跳转 是相对路径 相对当前页面(login1.jsp)
	/*
response跳转
http://localhost:8080/web02/welcome.jsp?cu_name=???
request跳转
http://localhost:8080/web02/login1.jsp?cu_name=刘德华&cu_phone=9999

response属于客户端行为 是由客户端(是浏览器行为)来发起跳转请求的 
request属于服务器端的行为 是由服务器内部来进行跳转的 如果服务器跳转了页面的地址 浏览器不知道 所以浏览器的地址还停留在上一个页面的地址上

	*/
}else{
	// 返回登录界面
	//response.sendRedirect(""); 接收1个字符串的参数 为需要跳转网页的地址
	response.sendRedirect("/web02");
	// 另外的方法 用的比较少 不推荐这么做
	//out.print("<script type='text/javascript'>location.href='/web02'</script>");
}
%>
</head>
<body>

</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网上订票系统 用到的技术为:javabean-servlet-jsp sql server 2000 数据库文件在WebRoot的DB文件中! 本系统实现了会员注册,会员登录,密码修改,以及会员信息的修改! 初步实现了在线订购,订单查询,班次查询以及系统管理--对火车信息的添加等。 操作过程: 首先,应导入到myeclipse中,将该系统发布到tomcat中,并启动tomcat! 接着在360浏览器中输入http://localhost:8080/bookonline/login.jsp 管理员的帐号为:guanliyuan 密码为:123456789 用户帐号为:987654321 密码为:987654321 当然可以在登录界面中点击注册链接,跳转到注册页面中进行注册(注:只能注册用户的,没有管理员注册!这是该系统中的一个问题)。 登录进去后进入主界面main.jsp中。在该界面中,可以点击修改用户信息,密码等链接,管理员还可以点击添加火车信息的链接。当然还可以查看火车信息。(注:只有在查询后,才能进行订票)。 注: 用到的页面 login.jsp——登录界面,可以链接到注册用户的界面。用admi n字段来标识是否为管理员。其中有一个用户为987654321密码为987654321,另一个为管理员guanliyuan密码为123456789 register.jsp——用户注册页面,默认的所有注册方式为用户,即所有的用户admin为0。而管理员事先设置好了,即admin为1。 registerfailed.jsp registersuccess.jsp——为注册成功或失败时用到的页面 main.jsp——为系统主页面,在这里可以链接到订票,查询,修改信息,修改密码,管理员添加火车信息等。该页面用到了专题咨询里面的主框架结构,和部分代码。 queryfailed.jsp——当查询失败时所连接到的界面 addtrain.jsp——管理员添加火车信息时的页面 adderror.jsp——用户点击添加火车信息时产生的错误界面 showticket.jsp——显示火车票信息,此时可以进行订票。 bookfailes.jsp booksuccess.jsp——订票成功或失败时所链接的界面。 view.jsp——浏览火车票信息。 modifyinfo.jsp——修改用户信息,在这里不可能更改密码,以及权限。 passwordmodify.jsp——修改密码!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值