javaweb-codereview 学习记录-1
Servlet
是在Java Web容器
上运行的小程序
,通常我们用Servlet
来处理一些较为复杂的服务器端的业务逻辑。值得注意的是在Servlet3.0
之后(Tomcat7+
)可以使用注解方式配置Servlet
了。
Servlet3.0
之前的版本都需要在web.xml
中配置,Servlet
是两对标签
,由<servlet>
和<servlet-mapping>
组成,Spring MVC
框架就是基于Servlet技术
实现的。
自己的理解:
servlet实际上就是服务后端逻辑的一段代码,配置servlet的过程实际上就是定义处理类与对应url的映射关系,而filter也是处理http请求的,只不过在servlet处理之前可以做一些过滤检测的操作。当然这种配置方式可以配置在文件中,也可以在代码中以@符号来定义注解,效果一样
spring :
struts2:
Struts2主要的开发模式是基于xml配置,在struts.xml
中配置Action地址和对应的处理类。
Java反射获取类方法有两种方式:
getMethod(xxx),getMethods()
getDeclaredMethod(xxx)、getDeclaredMethods()。
区别在于getMethod会返回当前类和父类的所有public方法
,而getDeclaredMethod返回的是当前的所有方法
。
Java反射获取类成员变量有两种方式:
getField(xxx)、getFields()
getDeclaredField(xxx)、getDeclaredFields()
java反射来调用类和类成员方法,在jdk7中MethodHandle
可以非常方便的访问和调用类方法:
例子:
import java.io.InputStream;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.lang.reflect.Method;
import java.util.Scanner; public class methodhandler {
public static void main(String[] args){
try {
String str = "calc.exe";
Class runtimeClass = Runtime.class;
MethodHandles.Lookup lookup = MethodHandles.lookup();
//Runtime rt = Runtime.getRuntime(); MethodHandle methodHandle = lookup.findStatic(runtimeClass,"getRuntime", MethodType.methodType(runtimeClass));
//get Runtime.exec
MethodHandle execMethod = lookup.findVirtual(runtimeClass,"exec",MethodType.methodType(Process.class,new Class[]{String.class} )); MethodHandle input = lookup.findVirtual(Process.class,"getInputStream",MethodType.methodType(InputStream.class));
InputStream in = (InputStream)input.invoke(execMethod.invoke(methodHandle.invoke(),str)); } catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (Throwable throwable) {
throwable.printStackTrace();
} }
}
上面这段代码实际上我们只要拿到MethodHandles.lookup 类的对象即可来调用任意类中的方法,这里当然还要注意要调用的方法的返回值的类型也就是MethodType.methodType()中需要指定的目标方法的类型,那么第二个参数肯定就是目标函数的入口参数的类型了,和反射调用传值貌似差不多,获取方法的时候都是传入口参数的类型
javaweb-codereview 学习记录-1的更多相关文章
- javaWeb后端学习记录
java后端学习重点: 1.java语言特性: 基础知识,集合,多线程,并发,JVM,NIO,网络编程,设计模式. (★★★★★) jdk源码中有大量的数据结构与java语言细节.jdk源码着重看c ...
- java后端学习记录2019
学习计划 2019年计划 1.学习计算机基础,并加以实践.包括LeetCode刷题.数据库原理(索引和锁.Sql优化等).网络协议(Http.Tcp).操作系统(加深Linux).<Http权威 ...
- Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客
==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
- Apache Shiro 学习记录4
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
- JavaWeb基础学习体系与学习思路
对于JAVAWEB的学习,首先一定要明确的是学习整体框架和思路,要有一个把控.对于WEB,很多人认为是做网页,简单的把静态网页与JAVAWEB与网页设计一概而论. 拿起一本JS就开始无脑的学习,学了一 ...
- UWP学习记录12-应用到应用的通信
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
- UWP学习记录11-设计和UI
UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...
- UWP学习记录10-设计和UI之控件和模式7
UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...
随机推荐
- 2019-9-3-win10-uwp-收集-DUMP-文件
title author date CreateTime categories win10 uwp 收集 DUMP 文件 lindexi 2019-09-03 17:48:44 +0800 2018- ...
- Linux 内核使用 USB 数据函数
USB 核心中的几个帮忙函数可用来从所有的 USB 设备中存取标准信息. 这些函数不能从 中断上下文或者持有自旋锁时调用. 函数 usb_get_descriptor 获取指定的 USB 描述符从特定 ...
- 【u034】追查坏奶牛
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这 ...
- css3 移动端旋转动画暂停
音乐播放图片旋转动画 ios不支持暂停: animation-play-state: paused; @-webkit-keyframes rotate{ 100% { transform: rota ...
- centos7 teamviewer
Step 1: Install the prerequisites. # yum install glibc alsa-lib freetype libICE libSM libX11 libXau ...
- C++中常量成员函数的含义
C++中常量成员函数的含义 本文内容来源:<C++必知必会> 使用常量成员函数可以改变对象的逻辑状态,虽然对象的物理状态没有发生改变.考虑如下代码,它定义了一个类X: class X{ p ...
- 第二阶段:2.商业需求分析及BRD:7.商业需求文档3
BRD模版 阐述需求来源以及调研分析情况 百度指数工具.定量的数据.发展趋势,是否与公司的战略冲突.环境政策:比如做内容的运营. 决策层看重的! 第二大块. 通过什么方式解决这个需求. 规划能力.类似 ...
- 互联网项目中mysql应该选什么事务隔离级别
引言 开始我们的内容,相信大家一定遇到过下面的一个面试场景 面试官:“讲讲mysql有几个事务隔离级别?” 你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读” 面试官:“为什么mysql ...
- 使用poi读写excel、向excel追加数据等,包括.xls和.xlsx文档
1.使用maven引入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>p ...
- 理解 RESTful API 设计规范
RESTful是目前最流行的API设计规范,它是用于Web数据接口的设计.从字面可以看出,他是Rest式的接口,所以我们先了解下什么是Rest. REST与技术无关,它代表的是一种软件架构风格,RES ...