7.2 KiB
7.2 KiB
[!hint] В старых рубежках может быть актуально все, кроме вопросов о PHP Нужно знать весь материал лекций до 3.2
- Файл для подготовки (от 2025 года)
- Разбор 2022 года
- Билеты 2022 года
- Заметки в notion
- Еще 2022 год
- Задания на код 2022 года
- Прошлогодняя рубежка
- Еще заметки в notion от 2022 года
Разбор типовых задач
1. Сделать слошную синюю границу 2px у текстового ввода внутри класса auth_form при фокусе
.auth-form input[type="text"]:focus {
border: 2px solid blue;
}
2. Написать миксин на SCSS и использовать его в классе user-card, добавить вложенный стиль при наведении курсора
@mixin card-style($bg-color: #ffffff) {
background-color: $bg-color;
border-radius: 8px;
}
.user-card {
@include card-style;
&:hover {
opacity: 0.8;
}
}
3. Написать код на JS, который читает поле ввода, если там число, то выводит удвоенное значение в консоль, иначе сообщение об ошибке в alert
const form = document.querySelector("#calcForm");
const input = document.querySelector("#numInput");
form.addEventListener("submit", (event) => {
event.preventDefault();
const text = input.value;
const number = parseFloat(text);
if (isNan(number)) {
alert("Введите число");
} else {
console.log(number*2);
}
});
4. Написать асинхронную функцию, которая делает POST запрос с координатами точки и возвращает json-ответ
async function sendCoordinates(x, y) {
const url = "/api/points";
const data = {x: x, y: y};
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data)
});
if (!response.ok) {
throw new Error();
}
const res = await response.json();
return res;
}
5. Через JQuery поменять элемент с классом content-box и вывести значение из поля ввода с id statusInput
$("#toggle-btn").on("click", () => {
$(".content-box").slideUp().css("color", "red");
console.log($("#statusInput").val());
});
6. Написать FCGI-сценарий, который проверяет строку запроса, если там есть слово ping, то выводит pong. Иначе возвращает 400 ошибку
public class Main {
public static void main(String[] args) {
FCGIInterface fcgi = new FCGIInterface();
while (fcgi.accept() >= 0) {
if (FCGIInterface.request == null) {
continue;
}
String query = FCGIInterface.request.getProperty("QUERY_STRING");
if (query != null && query.contains("ping")) {
System.out.println("Content-Type: text/plain\n");
System.out.println("ping");
} else {
System.out.println("Status: 400 Bad Request");
System.out.println("Content-Type: text/plain\n");
System.out.println("Bad Request");
}
}
}
}
7. Написать сервлет, который считает количество заходов пользователя на сайт через HTTP-сессии
@WebServlet("/counter")
public class MyServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res) {
HttpSession session = req.getSession();
if (session.getAttribute("visitCount") == null) {
session.setAttribute("visitCount", 0);
}
int count = (Integer) session.getAttribute("visitCount") + 1;
session.setAttribute("visitCount", count);
res.setContentType("text/plain");
PrintWriter out = res.getWriter();
out.println("Вы посетили страницу %d раз".format(count));
}
}
8. Написать сервлет, который проверяет роль пользователя и пропускает, если он админ, иначе переадресация на сообщение об ошибке
@WebServlet("/task")
public class MyServlet extends HttpServlet {
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String role = req.getParameter("role");
if (role == null || !role.equals("admin")) {
res.sendRedirect("/access-denied.html");
}
req.setAttribute("secretData", "TopSecret123");
RequestDispatcher disp = res.getRequestDispatcher("/admin.jsp");
disp.forward(req, res);
}
}
9. Написать фильтр, который пропускает пользователя дальше, только если в его сессии есть атрибут user
@WebFilter("/secure/*")
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws ServletException, IOException {
HttpServletRequest httpReq = (HttpServletRequest) req;
HttpServletResponse httpRes = (HttpServletResponse) res;
HttpSession session = httpReq.getSession();
if (session.getAttribute("user")==null) {
httpRes.setContentType("text/plain");
httpRes.setStatus(403);
hhtpRes.getWriter().println("Вход воспрещен");
} else {
chain.doFilter(req, res);
}
}
}
10. Реализовать функцию на JavaScript, которая будет закрывать текущее окно, если в нем открыт гугл
function closeWindow() {
if (window.location.href === "https://www.google.ru") {
window.close();
}
}
11. Открытие в новом окне браузера гугла через JS
window.open("http://google.com", "newwin", "width=1200,height=600");