目录
jsp基本介绍
上一篇文章小阿飞已经带大家认识了jsp,还不知道jsp的可以看完这一篇文章之后再去看看上一篇文章:
bin:所有启动和结束的命令
conf:配置文件
webapps:发布路径
work:编译文件
补充:如果你再web开发时遇到编号是这两个的报错情况可能代表:
404 页面找不到(路径存在问题)
500 java代码有问题
Web容器处理JSP文件请求经过的3个阶段:
分别是:
1.翻译阶段
2.编译阶段
3.执行阶段
先看图,后面还有解说:
第一次请求之后,Web容器可以再次使用已经编译好的字节码文件:
注意:如果对JSP文件进行了修改,Web容器会重新对JSP文件进行翻译和编译
解说:
jsp是一个文件格式,所以jsp本质上就是一个java文件
在这个文件中你可以写这些代码:java + html + css +js
虽然我们写的是.jsp文件,但是tomcat服务器会把jsp文件变成.java文件
当.java文件需要运行时:java虚拟机jvm(java编译器)就会把.java文件变成.class字节码文件让电脑看懂执行
例:一个部署在Tomcat里面的文件会具备上面讲到的这那两种文件格式
jsp页面的元素
jsp页面的元素包括
另外, 在JSP文件的编写过程中,共有三种注释方法:
B/S结构与C/S结构的区别
cs:即客户端client--->server服务器
bs:浏览器brower--->server服务器
这两种结构可以说是web开发者比较熟悉结构了^_^
那么,为什么他们需要基于B/S技术的动态网页呢?
那是因为,使用动态网页,可以动态输出网页内容、同用户进行交互、对网页内容进行在线更新等等,让开发出来的网页功能更加强大,与用户交互性更好。
B/S技术的特点
简单来说就是:
1.由客户端发出请求
2.请求发送到服务器
3.服务器处理请求(查询,插入)
4.服务器返回响应给客户端
图示如下:
URL的组成
一个完整的URL主要有这三部分组成:
协议+主机+端口
其中:
http:代表超文本传输协议
localhost:代表本机
8080:代表端口号
修改Tomcat服务器的默认端口号
在我们开发网页过程中,有可能会遇到端口号被占用这种报错,那么这个时候就需要修改Tomcat服务器的默认端口号,修改方式如下:
先像这样点击:
然后就会到服务器这里:
如果服务器下面有web项目的话(如上图)记得移除:
然后双击服务就可以跳转到这个界面进行端口号修改了:
找到这个地方,直接把原来的端口号修改成别的端口号就ok了:
表单数据的提取
request对象与response对象
request对象 :客户端给服务器的对象
response对象:服务器给客户端的对象
运用request对象与response对象
比如要给下面这个表单进行提交验证
<form action="doLogin.jsp" method="get">
<p>
<input type="text" name="username" placeholder="请输入用户名">
</p>
<p>
<input type="password" name="password" placeholder="请输入密码">
</p>
<p>
<input type="number" name="age" placeholder="请输入年龄">
</p>
<p>
<input type="checkbox" name="habit" value="吃饭"> 吃饭
<input type="checkbox" name="habit" value="睡觉"> 睡觉
<input type="checkbox" name="habit" value="上网课"> 上网课
</p>
<p>
<button>登录</button>
</p>
</form>
运用request对象与response对象的代码如下:
//获取用户提交的表单信息
String username=request.getParameter("username");//从请求中取表单数据,将前端的值发给后端
String password=request.getParameter("password");
//从请求中取数据
String age=request.getParameter("age");//表单中输入框内容但是String类型
Integer.parseInt(age);//要自己转换成int类型
//爱好有多个值,不能用这个接受
//String habit=request.getParameter("habit");
//System.out.print(habit);//不会在网页上打印,在控制台打印
//使用request.getParameterValues()接受到多个具有相同name的值,拿到的是字符串数组
String[] ts=request.getParameterValues("habit");
//foreach 输出所有爱好
String my_habit="";
for(String habit:ts){
System.out.print(habit);
//多个爱好存入数据库的应该是一个数据
my_habit+=habit+",";
}
out.print(my_habit);
//从数据库拿出爱好
my_habit.split(",");
//登录验证
if("aa".equals(username)&&"1234".equals(password)){//username不是"username"
out.print("登录成功");//在网页上打印
}else{
out.print("username"+"password");
out.print("登录失败");
}
感 谢 阅 读