一、地址

客户端路径和服务端路径

表单:<form action="路径"></form>

超链接:<a href="路径">xxx</a>

图片:<img src="路径"/>

重定向:response.sendRedirect("路径")

请求转发:request.getQuestDispatcher("路径").forward(request,response)

请求包含:request.getQuestDisPatcher("路径").include(request,response);

ServletContext 获取资源的相关方法

servletContext.getRealPath("路径")//根据文件的相对路径获取绝对路径

servletContext.getResourceAsStream("路径")//根据文件的相对路径获取文件的输入流

在web.xml文件中配置的Servlet的访问路径

<url-pattern>路径</url-pattern>

客户端路径:客户端访问服务器资源的时候的路径

1、表单

在程序中的书写方式:http://127.0.0.1:8888/day11/AServlet

服务器主机名/端口号/项目名/资源名

2、超链接

<a href="路径">xxx</a>

3、图片

<img src="/day11/images/stu,jpg"/>

4.重定向

response.sendRedirect("/day11/AServlet");

服务端路径:

1、请求转发

2、请求包含

3、在ServletContext中与资源相关的方法

  servletContext.getRealPath("/WEB-INF/web.xml")//根据文件的相对路径获取绝对路径

4、在web.xml文件中配置的Servlet的访问路径

<url-pattern>/AServlet</url-pattern>

二、编码

从客户端、浏览器向服务器发送请求数据或从服务器向客户端发送响应数据,在底层都是以字节的形式发送的,这就需要将字符数据转换成字节,这个过程叫做编码。

在客户端、浏览器或者服务器端接收到字节数据后,需要把字节组装成字符,这个过程叫做解码。

无论编码和解码都需要用到码表。常用的编码解码方式有GBK gb2312 ISO-8859-1

服务器默认的编码和解码都是ISO-8859-1

产生乱码的根源是编码和解码的方式不一致,只要编码和解码的方式一致就不会产生乱码。

三、请求编码

(1)在页面中发出请求

用户在页面上输入的数据的编码是由页面本身的编码决定的

(2)get请求解码

服务器默认的解码方式为ISO-8859-1 ,不支持中文。

解决乱码需要两步:一是回退为字节数据 二是重新编码

AServlet.java

package cn.edu.aynu.rjxy.servlet;

import java.io.IOException;
import java.util.ArrayList; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class AServlet extends HttpServlet {
/*
* Post请求
*
*/ public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*post请求的解码处理 乱码出现的根源是:编码方式和解码方式不一致。
* tomcat服务器默认的解码方式是ISO-8859-1不支持中文。由于post请求
* 有请求体,请求参数是放在请求体中的,设置请求体的解码方式,需要调用
* 方法request.setCharacterEncoding("UTF-8");支持中文
*/
request.setCharacterEncoding("UTF-8");
//响应输出流的编码方式是UTF-8 客户端、浏览器解码方式也为UTF-8
response.setContentType("text/html;charset=utf-8");
//根据参数名获取参数值
String username = request.getParameter("username");
String sex = request.getParameter("sex");
String select = request.getParameter("select");
//根据参数名获取多个参数值
String[] hobby = request.getParameterValues("hobby");
String experiment = request.getParameter("experiment");
//输入到界面上
response.getWriter().print("姓名:"+username+"<br>");
response.getWriter().print("性别:"+sex+"<br>");
response.getWriter().print("学历:"+select+"<br>");
//创建一个数组用于存放爱好的值
ArrayList hobbies = new ArrayList();
//数组的遍历
for (int i = 0; i < hobby.length; i++) {
hobbies.add(hobby[i]);
}
response.getWriter().print("爱好:"+hobbies+"<br>");
response.getWriter().print("工作经历:"+experiment+"<br>");
} }

a.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'a.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<form action="/day11/AServlet" method="post">
姓名:<input type="text" name="username"><br>
性别:<input type="radio" name="sex" value="male">男
<input type="radio" name="sex" value="female">女<br>
学历:<select name="select">
<option selected="selected" value="college">本科</option>
<option value="junior">大专</option>
<option value="master">硕士</option>
<option value="doctor">博士</option>
</select><br>
爱好:<input type="checkbox" name="hobby" value="sing">唱歌
<input type="checkbox" name="hobby" value="dance">跳舞
<input type="checkbox" name="hobby" value="read">阅读
<input type="checkbox" name="hobby" value="run">跑步<br>
工作经历:<br>
<textarea name="experiment" rows="5" cols="35">请认真写下您的工作经历</textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>

Java Web总结的更多相关文章

  1. 高效 Java Web 开发框架 JessMA v3.5.1

    JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...

  2. 高效 Java Web 开发框架 JessMA v3.4.1

    JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...

  3. java web 之客户关系管理系统

    这个周末真的是觉得自己学会了一个比较高大上的本领,为什么这么觉得呢?那是因为星期六的时候觉得自己可以看看源码能做出来,可是让我头疼的是花费了一上午的时间还是没有弄出来,还好上天给了我机会,要是没有老师 ...

  4. Java Web中的中文编码

    Java Web开发中经常会遇到中文编码问题,那么为什么需要编码呢?因为人类需要表示的符号太多,无法用1个字节来表示,而计算机中存储信息最小单元为1个字节.所以必须指定char与byte之间的编码规则 ...

  5. java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化

    一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...

  6. JAVA WEB项目中各种路径的获取

    JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在s ...

  7. JAVA WEB WITH IDEA

    本文主要介绍使用IDEA开发环境,创建JAVA WEB 工程,并介绍war包的制作过程. 1 创建MAVEN工程

  8. java WEB开发入门

    WEB开发入门 1 进入web JAVASE:标准- standard   JAVA桌面程序 GUI    SOCKET JAVAEE:企业-浏览器控制  web 2 软件结构 C/S :client ...

  9. Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用

    问题:Jenkins 2.16.3默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 打开&quo ...

  10. 5款强大的Java Web开发工具

    1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...

随机推荐

  1. py2exe使用中遇到的几个问题

    问题: 在使用py2exe对所写的python脚本打包成.exe可执行程序时,遇到两个问题: 问题1: RuntimeError: maximum recursion depth exceeded w ...

  2. JavaScript JsTree实例

    var RightTree= function () { }; RightTree.prototype = { //初始化权限树 InitRightTree: function () { $.ajax ...

  3. The network bridge on device VMnet0 is not running

    The network bridge on device VMnet0 is not running. The virtual machine will not be able to communic ...

  4. PHP+MySQL代码部署在Linux(Ubuntu)上注意事项

    最近帮同学做一个网站,同学买的是阿里云服务器,Linux发行版是Ubuntu12.04.我在本地把程序写好,都调试好了.然后他让我自己发布和部署.之前在大学里上操作系统课程时,也用过一段时间的Ubun ...

  5. iOS开发之各种动画各种页面切面效果

    因工作原因,有段时间没发表博客了,今天就发表篇博客给大家带来一些干货,切勿错过哦.今天所介绍的主题是关于动画的,在之前的博客中也有用到动画的地方,今天就好好的总结一下iOS开发中常用的动画.说道动画其 ...

  6. gulp自动化构建工具

    gulp    自动化构建工具,实时监控.代码合并.压缩... http://www.gulpjs.com.cn/     中文网 http://gulpjs.com/plugins/     英文网 ...

  7. my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接

    一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径“C:\Soft\mysql-5.6.24-winx64” 三.环境配置 计算 ...

  8. Android置底一个View后运行报错

    大致问题是 放一个LinearLayout ID @+id/layout ,然后在它上面放一个button 设置android:layout_above="@id/layout" ...

  9. 在ASP.NET Core使用Middleware模拟Custom Error Page功能

    一.使用场景 在传统的ASP.NET MVC中,我们可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了HandleErrorAtt ...

  10. 创建ASP.NET Core MVC应用程序(1)-添加Controller和View

    创建ASP.NET Core MVC应用程序(1)-添加Controller和View 参考文档:Getting started with ASP.NET Core MVC and Visual St ...