Javaweb学习笔记(一)
web前端的学习推荐地方:w3school 在线教程
分享个记笔记的好工具加破解:Typora:typora下载和破解(仅供学习) – hackettt – 博客园 (cnblogs.com)
—-JavaScript—-#
最基础的输出语句:alert(“xxx”);
控制台输出:console.log(xxx);
定义变量:var a=xxx; –数据类型:number:数字,string,boolean不多说,null:对象为空,undefined:声明的变量未初始化时。获取数据类型可以用xxx.typeOf的方法-JS有点像python不用定义数据类型。
定义一个函数(相当于Java中的方法):function xxx(a,b){}//变量不用定义数据类型
调用函数:var result=xxx(x,y);并输出:alert(xxx);
另一种方法定义函数:var 方法名=function(参数…){}
JS基础对象:
数组:Array(数组的元素可以为空)。获取数组长度:.length。一些方法:forEach():遍历数组中的每个有值的元素(普通for循环空的也要遍历),并调用一次传入的函数。push():将新元素添加到数组末尾,并返回新的长度。splice():从数组中删除元素。
ES6箭头函数(相当于Java中的Lambda):
arr2.forEach(e => {
console.log(e);
});
字符串对象:String。创建方法:var xxx=new String(“…”)或直接var xxx=”…”。获取长度:.length。一些方法:charAt:str.charAt(2);获取str下标为2的字符;;;获取指定字符在字符串中的位置:str.indexof(“xxx”);;;去掉字符串中的左右的空格:trim
—Maven—#
maven官网:Maven – Welcome to Apache Maven
阿里云maven配置下载:JDK11的建议用3.6.1:Index of /dist/maven/maven-3/3.6.1/binaries (apache.org),选择apache-maven-3.6.1-bin.zip。JDK17的建议用3.8.1:Index of /dist/maven/maven-3/3.8.1/binaries (apache.org),也是选择apache-maven-3.8.1-bin.zip
安装与配置方法(参考文章:MAVEN的安装与配置教程(超详细版)_maven安装及配置教程_Coder_19zfl的博客-CSDN博客):
解压成文件夹打开conf文件夹,用IDEA等运行setting.xml文件,再在55行代码处添加下面的代码:<localRepository>Path</localRepository>。其中path为你存放maven的respone(响应)的文件夹,建议就在apache-maven文件夹里面新建个文件夹。
然后配置阿里云私服地址,详细方法:Maven仓库配置阿里云私服地址_nexus-aliyun地址_你好像很好吃a的博客-CSDN博客
(Maven3.6.1的需要添加,3.8.1的需要修改):打开setting.xml,找到<mirrors></mirrors>
标签
在标签中增加如下代码:
<mirror>
<id> alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
最后在添加一个环境变量,方法就是先新建一个MAVEN_HOME(maven文件地址)的系统变量,地址就是apache-maven-3.6.1解压maven的文件夹路径,然后再在Path系统变量中新建名叫%MAVEN_HOME%\bin就行了。
打开windows终端输入:
mvn -v // 查看maven版本号
导入Maven工程:文件–>项目结构–>模块–>”+“号–>新建模块。
Maven的三个坐标:groupId(组织ID),artifactId(工程ID),version(版本)
Maven依赖管理:
配置:在pom.xml中编写<denpendencies>标签,再编写<denpendency>回车就自动生成了。输入Maven的三坐标就可以依赖Maven库了,Maven仓库大全:Maven Repository: Search/Browse/Explore (mvnrepository.com)
传递:Maven-project2依赖了Maven-project1的资源,Maven-project1又依赖了MavenStudy的资源
范围(scope):<scope>xxx</scope>
scope值 | 主程序main | 测试程序test | 打包package | 范例 |
compile(默认) | Y | Y | Y | log4j |
test | – | Y | – | junit |
provided | Y | Y | – | servlet-api |
runtime | – | Y | Y | jdbc驱动 |
生命周期:一般包括clean清除运行的target文件–>compile恢复生成target文件–>test测试–>package打包–>install安装
—Web后端开发入门—#
在浏览器中调用RequestMapping名输出Hello World!:在src/main/java/组织名包/创建一个软件包再创建一个Java类:
再在里面编写下面的代码:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class c1 {
@RequestMapping("/hello")
public String hello(){
System.out.println("Hello!");
return "Hello~";
}
}
再运行自动生成的SpringBootStudynewApplication类,在浏览器输入地址:localhost:8080/hello。大功告成!
SpringBoot内嵌Tomcat服务器哦~
DispatcherServlet:前端控制器
postman下载加汉化教程:postman下载与汉化(附直接下载链接)_postman汉化包下载_小雪雪7777的博客-CSDN博客
postman的使用:新建一个工作区,再在URL输入你的localhost地址,再send就可以直接返回值。
—请求参数—#
简单参数:
创建一个JAVA类编写下面代码(创建位置就不多说了):
@RestController
public class RequestController {
@RequestMapping("/simpleParam")
public String simpleParm(HttpServletRequest request){
String name= request.getParameter("name");
String ageStr= request.getParameter("age");
int age=Integer.parseInt(ageStr);
System.out.println(name+":"+age);
return "OK";
}
}
再在postman的URL中输入https://localhost:8080/simpleParam?name=hepingan&age=19。发送就可以在IDEA控制台看到hepingan:19,这是远古方式,下面时SpringBoot的方式:
@RequestMapping("simpleParam2")
public String simpleParam2(String name,Integer age){
System.out.println(name+":"+age);
return "OK";
}
实体参数
//实体参数
*@RequestMapping("Pojo") public String Pojo(User user){ System.*out*.println(user); return "Ok"; }
User类:
public class User
private String name;
private String age;
private Address address;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getAge() { return age; }
public void setAge(String age) { this.age = age; }
public Address getAddress() { return address; }
public void setAddress(Address address) { this.address = address; }
@Override public String toString() { return "User{" + "name='" + name + '\'' + ", age='" + age + '\'' + ", address=" + address + '}'; } }
Address类:
public class Address {` `private String province;` `private String city;
public String getProvince() {` `return province;` `}
public void setProvince(String province) {` `this.province = province;` `}
public String getCity() {` `return city;` `}
public void setCity(String city) {` `this.city = city;` `}
@Override` `public String toString() {` `return "Address{" +` `"province='" + province + '\'' +` `", city='" + city + '\'' +` `'}';` `}` `}
数组集合参数
就是用数组或集合的形式来存储嘛~
eg:http://localhost:8080/arrayParam?hobby=sing&hobby=dance&hobby=java;http://localhost:8080/listParam?hobby=sing&hobby=dance&hobby=java;
//数组参数
@RequestMapping("arrayParam")
public String arraylistParam(String[] hobby){
System.out.println(Arrays.toString(hobby));
return "Ok";
}
//集合参数
@RequestMapping("listParam")
public String listParam(@RequestParam List<String> hobby){
System.out.println(hobby);
return "Ok";
}
日期参数和JSON参数
日期要按格式写(yyyy-MM-dd HH:mm:ss),不然postman会报400;json参数就是输入的数据需要按照对应的数据格式填写
//date日期参数
@RequestMapping("dataParam")
public String dataParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
System.out.println(updateTime);
return "Ok";
}
//json参数
@RequestMapping("jsonParam")
public String jsonParam(@RequestBody User user){
System.out.println(user);
return "Ok";
}
路径参数
使用@PathVariable注解,方式如下,URL_eg:http://localhost:8080/path/10/hepingan
@RequestMapping("/path/{id}/{name}")
public String pathParam2(@PathVariable Integer id,@PathVariable String name){
System.out.println(id+","+name);
return "OK";
}
—分层解藕—#
三层架构
前端请求–>Controller层接收请求,响应数据–>Service层逻辑处理–>Dao层数据访问。
添加IDC的注解:在类外面:@Component,在类里面: @Autowired,作用就是为了不重复修改对象啥的,暂时没啥大用后面再学…
IDC/DI入门
IOC(inversion of control),对象的创建控制权由程序自身移到外部(容器),这种思想成为控制反转;DI(dependency injection),容器为应用程序提供运行时,所依赖的资源,称为依赖注入;Bean对象:IOC容器中创建和管理的对象。
先在Service层和Dao层上输入@Component注解,表示将当前类交给IOC容器,成为IOC容器中的bean;为Controller和Service注入运行时依赖的对象,需要在对象上添加 @AutoWired注解;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?