javaWeb01(jsp入门)

摘要:java学习
你想输入的替代文字

环境搭建
1、安装tomcat,可以进行启动,但是注意和我们的Eclipse关联时候,需要手动关闭,因为会与我们Eclipse配置的端口冲突
2、创建javaweb工程的时候,serverruntime进行配置时候,可能会出错,导致servlet-api找不到
3、如何解决
1.在tomcatlib下找到servlet-api的jar包,添加到我们的工程目录的WEB-INF下的lib目录下
2.使用自动加载,伴随jdk进行加载
首先找到jdk安装位置找到jre文件夹,在jre文件夹下的ext文件夹下,添加servlet-api的jar包,如果jre没有自动加载,手动添加进入即可,一次添加以后无需添加
创建jsp
jsp是创建在WebContent不能创建在META-INF或者WEB-INF文件夹下,如果创建在这2个文件夹下,直接会导致外部不能直接进行访问

我们在最开始创建的JSP中,会发现和我们的html没有任何不一样
jsp和html具体有什么区别呢?
jsp实现原理是是基于Servlet基础上进行实现的,主要用于展示页面内容,jsp里面可以插入java代码


一、如何插入java代码我们通过

<%%> 在二个%中间写相应的java代码

二、如何输出语句

<%
//输出到控制台
System.out.println(“输出内容”);
//输出到前台页面上
out.println(“hello World “);
%>
System.out.println还是输出到控制台
out是直接向jsp上直接输出,并且支持html标签

需要注意的是如果输出中文,会乱码,需要修改相应的编码为utf-8

三、项目发布和Eclipse直接调用原理

项目的发布,是直接通过web工程打包为war包,放入到webapps下,tomcat会自动进行解压,项目就完成了发布

而Eclipse能直接控制tomcat,原理也是采用你修改了代码,就进行同步里面的内容,是所有内容同步还是部分内容同步?
我们通过在里面访问一张照片,检验出,是所有进行文件夹覆盖
打印变量
如果直接输出值
<%=8%>
输出变量
<%
//声明变量
String s=”hello world”;
out.println(s);
%>
<%=s%>

form表单

1、单行数据

单行数据显示
员工编号:
员工姓名:

响应页面
<%
String s = request.getParameter(“empnum”);
String s1 = request.getParameter(“empname”);
%>
<%=”员工编号 “+s%>
<%=”员工姓名”+s1%>

2、多行数据
获得多行文本数据
文章内容

响应页面
String s2 = request.getParameter(“textarea的name”);
<%=”文章内容”+s2%>

在这里提交中文会出现乱码
request.setCharacterEncoding(“utf-8”);

3、下拉框选中的数据

下拉框选中内容
部门:

响应页处理
String s3 = request.getParameter(“select下拉框的name”);
<%=”部门”+s3%>

4、获得单选框内容

男 
响应页
String s4 = request.getParameter(“单选框的name”);
<%=”性别”+s4%>

5、获得复选框数据

打球
游戏
游泳
跑步

响应页
<%
//防止不选择就提交
if(s5!=null&&s5.length>0){
   for(int i=0;i<s5.length;i++){
    out.println(“多选数据 “+s5[i]);
   }
}
%>
6、多个同名输入框







响应页
String[] s6 = request.getParameterValues(“username”);

<%
//防止不选择就提交
if(s6!=null&&s6.length>0){
for(int i=0;i<s6.length;i++){
  out.println(“同名输入框 “+s6[i]);
 }
}
%>

总结

单行文本、多行文本、下拉框,单选框,这几种输入框,后台获得输入框中的数据,都是一样
String s3 = request.getParameter(“输入框的name”);
复选框由于可以多选,选中的选项形成一个数组,所有后台获得复选框选中值,需要使用数组进行保存
String[] s6 = request.getParameterValues(“username”);
需要注意的是,数组进行保存,如果用户没有选择,就进行提交,我们在接收数据,应当进行判断,否则会导致程序崩溃

中文乱码的问题
request.setCharacterEncoding(“utf-8”);