<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
return "redirect:/findAllFood.do"; //重定向到 controller里
return "adminupdatefood"; //返回jsp
<!-- 资源解析器,只负责请求转发,不负责重定向 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp"/>
WEB-INF安全目录下资源不能直接访问的问题
https://blog.csdn.net/qq_17852961/article/details/76409365?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
原理
•
一个服务器上可以添加多个web应用,每个web应用要有不同的端口号,服务上通过不同端口号选择不同的web应用对请求进行处理。
•
当我们去启动一个WEB项目时,容器包括(JBoss、Tomcat等)首先会读取项目web.xml(web.xml的模式文件是由Sun 公司定义的)配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点: <listener></listener>和<context-param></context-param>,紧接着,容器创建一个ServletContext(application),这个WEB项目所有部分都将共享这个上下文。
ORM思想
•
O代表的是Objcet
•
R代表的是Relative
•
M代表的是Mapping
数据库和对象映射
Artifacts
An artifact is an assembly of your project assets that you put together to test, deploy or distribute your software solution or its part. Examples are a collection of compiled Java classes or a Java application packaged in a Java archive, a Web application as a directory structure or a Web application archive, etc.
即编译后的Java类,Web资源等的整合,用以测试、部署等工作。再白话一点,就是说某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式。某个module有了 Artifacts 就可以部署到应用服务器中了。
(
jar:Java ARchive,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便分发Java平台应用软件或库;
war:Web application ARchive,一种JAR文件,其中包含用来分发的JSP、Java Servlet、Java类、XML文件、标签库、静态网页(HTML和相关文件),以及构成Web应用程序的其他资源;
exploded:在这里你可以理解为展开,不压缩的意思。也就是war、jar等产出物没压缩前的目录结构。建议在开发的时候使用这种模式,便于修改了文件的效果立刻显现出来。
)
Http协议中常见的状态码和含义
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误
401 - 没有权限
Get和Post的区别
GET请求的URL传参有长度限制,而POST请求没有长度限制;
GET请求的参数只能是ASCII码,所以中文需要URL编码,而POST请求传参没有这个限制;
get是从服务器上获取数据,post是向服务器传送数据。
get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
get安全性非常低,post安全性较高。但是执行效率却比Post方法好
转发与重定向的区别
1.请求转发的时候,地址栏不会发生改变。重定向的地址栏会发生改变
2.请求转发是服务器行为,重定向时浏览器(客户端)行为
3.请求转发只发送一次请求,重定向发送两次请求
4.使用请求转发,可以访问到请求域中的数据,使用重定向是无法访问到请求域中的数据的
5.请求转发的效率要高一些,重定向的效率要低一些
6.请求转发只能在当前项目下重定向可以定位到任意项目(包括一些跳转页面)
1.
JSP和Servlet区别
ervlet都是由JAVA程序代码构成,用于流程控制和事务处理,通过Servlet来生成动态网页很不直观。而JSP由HTML代码和JSP标签构成,可以方便地编写动态网页.
编译:JSP修改后可以立即看到结果,不需要编译;而Servelt缺需要编译。转换:JSP是动态网页开发技术,是运行在服务器端的脚本语言,而Servlet是web服务器端编程技术。所以JSP运行时就是转换为Servlet,也就是java程序来执行
1.
session和cookie的区别
1、Cookie 数据存放在客户的浏览器上,session 数据放在服务器上。
2、Cookie 不是很安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗,考虑到安全应
当使用 Session
3、Session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用 Cookie。
4、单个 Cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 Cookie
5、可以考虑将登陆信息等重要信息存放为 Session,其他信息如果需要保留,可以放在 Cookie 中。
1.
servlet的生命周期
servlet的生命周期就是从servlet出现到销毁的全过程。主要分为以下几个阶段:
加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求处理(服务阶段)—>销毁
服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf),该servlet对象去处理所有客户端请求,service(ServletRequest req,ServletResponse res)方法中执行,最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。
1.
域对象有哪些以及作用范围
一、pageContext
作用范围:仅限于当前jsp页面
二、request
作用范围:仅限于同一个请求,主要用于请求转发
三、session
作用范围:限于一次会话,在servlet中可以通过request对象获取
四、application
作用范围:在当前整个WEB应用中有效,只要在一处设置属性,在其他各个地方的jsp或者Servlet中都可以获取到,在servlet中 对应于ServletContext对象
评论区